Certbot提示requests.packages.urllib3解决

今天给手头上的一台服务器更新HTTPS证书,因为之前的证书过期了,想用letsencrypt替代下,但是不知道为毛遇到了个报错,花了点时间解决,这里保存一下。

简单的报错信息如下:

ImportError: No module named 'requests.packages.urllib3'

意思是,找不到上面哪个模块,我对Python不熟悉,也就拿来简单写了几个爬虫,我记得requests和urllib是两个不同的包,难道是我记错了,还是这两个包在新版本合并到一起了?

暂时先不管了,解决问题要紧。

将报错信息放到Google搜了一把,找到个解决办法:

pip install requests urllib3 pyOpenSSL --force --upgrade

执行之后,发现并没有解决,再次执行certbot certonly,出现了新的报错:

ImportError: 'pyOpenSSL' module missing required functionality.

直接安装pyOpenSSL模块也不行,提示已安装,这就尴尬了哈。我只是想申请个SSL证书而已。

好在后面又找到个解决办法:

pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
yum install python-urllib3
yum install python-requests
yum install certbot

办法就是,卸载先有版本的requests和urllib3,然后重新安装。还别说,执行这几个命令之后,问题真的解决了,执行certbot certonly就不报错了。

遇到同样问题的朋友,可以试试,希望能帮上你。