如何修复ImportError:没有名为加密的模块?

问题描述 投票:2回答:1

我想通过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)

如何安装密码?

pip cryptography certbot
1个回答
0
投票

成功安装后,我运行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'命令,并且可以忽略警告信息。

© www.soinside.com 2019 - 2024. All rights reserved.