我想通过certbot自动续订证书,但不起作用,出现错误“ ImportError:没有名为加密的模块”
#./certbot-auto --dry-run
错误:无法获得/opt/eff.org/certbot/venv/bin/letsencrypt的当前安装版本:追溯(最近一次通话):在第7行的文件“ /opt/eff.org/certbot/venv/bin/letsencrypt”从certbot.main导入main在第10行中输入文件“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py”将josepy导入为jose在第41行的“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/init.py”文件中从josepy.interfaces导入JSONDeSerializable在第7行的“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py”文件中从josepy导入错误,util在第7行的“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py”文件中导入OpenSSL在第8行的文件“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/init.py”从OpenSSL导入加密,SSL在第12行的文件“ /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py”从加密导入x509ImportError:没有名为加密的模块
我尝试安装密码术,并得到了此结果
sudo /opt/eff.org/certbot/venv/bin/pip安装密码术
您使用的是pip版本9.0.1,但是可以使用版本19.2.3。您应该考虑通过“ pip install --upgrade pip”命令进行升级。
然后我尝试了此命令pip install --upgrade pip
建议:Python 2.7将于2020年1月1日到期。请升级您的Python,因为在此日期之后将不再维护Python 2.7。 pip的未来版本将不再支持Python 2.7。有关[p0]中对Python 2支持的更多详细信息,请参见https://pip.pypa.io/en/latest/development/release-process/#python-2-support要求已经是最新的:pip在/usr/lib/python2.7/dist-packages/pip-19.2.3-py2.7.egg(19.2.3)
如何安装密码?
成功安装后,我运行certbot-auto并升级到新版本后,得到了完全相同的错误消息。
这是我在此情况下的解决方法:
pip install cryptography
cd /opt/eff.org/certbot/venv/lib64/python2.7
mv site-packages site-packages.sav
ln -s dist-packages/ site-packages
这是因为letsencrypt的定制版本的python在site-packages子文件夹下查找该软件包,而在我的情况下它为空,并且该软件包在dist-packages]]下子文件夹。
注意:如果看到加密已成功安装,则无需运行'pip install --upgrade pip'命令,并且可以忽略警告信息。