记录一次 Python 脚本的执行通过过程

在线资源有两个容易遗忘的事:域名续签、证书续签。域名还能收到注册商发来的提醒,但那个免费的证书颁发商似乎就没有这个贴心服务了。周初一咬牙,心说让 AI 帮忙写个例行巡检的脚本得了,给它几个网站地址,隔一天定时访问一下,看看访问结果,要是证书即将过期的话,也提示一下。

脚本很快就写完了,但是解析证书以获取过期时间的地方,它依赖了 OpenSSL 模块,一跑就报错。我当初看到脚本的时候,直觉以为代码里的 OpenSSL 就是系统内的 Open SSL 呢,这一下才想到不对,应该是需要 Python 封装过的,查了一下,是个叫 pyOpenSSL 的东东,用 pip3 执行了安装。再执行脚本,还报错:

虽说对 Python 不熟,从最后一行也能感觉到是 cffi 缺了。连忙 pip3 install cffi,又错:

找不到 Python.h?老夫自己手动 find / -iname 'Python.h' 找了下,发现在 /usr/include/python3.6m 里有,图快,就执行了个 export CPPFLAGS=-I/usr/include/python3.6m 然后再安装 cffi。结果又出来这个,

只好又 apt install libffi-dev 完了再试,终于把 cffi 装上了。

尝试执行脚本,仍错,

唉,早知道不图快了。既然 3.6 的 python-dev 跟 python 版本不匹配,那它就没有用了,卸载掉,用 apt 命令安装 python3.7-dev。接着把 cffi 也卸载,然后重装,还要记得重装时要写成 pip3 --no-cache-dir install cffi,否则会直接把缓存里的、也就是刚刚卸载掉的版本用上。

这样折腾下来,脚本总算执行通过。

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注