今天给手头上的一台服务器更新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就不报错了。
遇到同样问题的朋友,可以试试,希望能帮上你。