How to fix ImportError: No module named cryptography?
How to fix ImportError: No module named cryptography?
我想通过 certbot 自动续订证书,但无法正常工作,出现错误 "ImportError: No module named cryptography"
# ./certbot-auto --dry-运行
错误:无法获取 /opt/eff 的当前安装版本。org/certbot/venv/bin/letsencrypt:
追溯(最近一次通话):
文件“/opt/eff.org/certbot/venv/bin/letsencrypt”,第 7 行,位于
来自 certbot.main 导入主要
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py”,第 10 行,位于
将 josepy 导入为 jose
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/init.py”,第 41 行,在
来自 josepy.interfaces 导入 JSONDeSerializable
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py”,第 7 行,位于
来自 josepy 导入错误,util
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py”,第 7 行,位于
导入 OpenSSL
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/init.py”,第 8 行,在
从 OpenSSL 导入加密,SSL
文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py”,第 12 行,位于
从密码学导入 x509
ImportError: 没有名为 cryptography 的模块
我尝试安装密码系统,得到了这个结果
sudo /opt/eff.org/certbot/venv/bin/pip 安装加密
您使用的是 pip 版本 9.0.1,但是版本 19.2.3 可用。
您应该考虑通过 'pip install --upgrade pip' 命令升级。
然后我尝试了这个命令
pip 安装 --upgrade pip
弃用:Python 2.7 将于 2020 年 1 月 1 日结束其生命周期。请升级您的 Python,因为 Python 2.7 将在该日期之后停止维护。 pip 的未来版本将放弃对 Python 2.7 的支持。有关 Python 2 pip 支持的更多详细信息,请访问 https://pip.pypa.io/en/latest/development/release-process/#python-2-support
要求已经是最新的:pip in /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 子文件夹下。
注意:如果看到cryptography安装成功则不需要运行'pip install --upgrade pip'命令,可以忽略警告信息。
尝试在 AWS EC2 实例上更新我的 certbot 证书时,我也 运行 遇到了同样的问题。我开始安装密码学,然后让虚拟环境在正确的目录中查找它,然后找不到另一个包,github 的所有回复都是他们不支持这些AWS 实例。 Soooooo,我采用了这个简单的想法,而且效果很好:
cd /opt
sudo rm -R eff.org
cd ~
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto renew --debug
也就是我删除了旧的安装,然后用“更新”命令重新安装了。工作完美。您的密钥未存储在您删除的目录中。
我想通过 certbot 自动续订证书,但无法正常工作,出现错误 "ImportError: No module named cryptography"
# ./certbot-auto --dry-运行
错误:无法获取 /opt/eff 的当前安装版本。org/certbot/venv/bin/letsencrypt: 追溯(最近一次通话): 文件“/opt/eff.org/certbot/venv/bin/letsencrypt”,第 7 行,位于 来自 certbot.main 导入主要 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py”,第 10 行,位于 将 josepy 导入为 jose 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/init.py”,第 41 行,在 来自 josepy.interfaces 导入 JSONDeSerializable 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py”,第 7 行,位于 来自 josepy 导入错误,util 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py”,第 7 行,位于 导入 OpenSSL 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/init.py”,第 8 行,在 从 OpenSSL 导入加密,SSL 文件“/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py”,第 12 行,位于 从密码学导入 x509 ImportError: 没有名为 cryptography 的模块
我尝试安装密码系统,得到了这个结果
sudo /opt/eff.org/certbot/venv/bin/pip 安装加密
您使用的是 pip 版本 9.0.1,但是版本 19.2.3 可用。 您应该考虑通过 'pip install --upgrade pip' 命令升级。
然后我尝试了这个命令 pip 安装 --upgrade pip
弃用:Python 2.7 将于 2020 年 1 月 1 日结束其生命周期。请升级您的 Python,因为 Python 2.7 将在该日期之后停止维护。 pip 的未来版本将放弃对 Python 2.7 的支持。有关 Python 2 pip 支持的更多详细信息,请访问 https://pip.pypa.io/en/latest/development/release-process/#python-2-support 要求已经是最新的:pip in /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 子文件夹下。
注意:如果看到cryptography安装成功则不需要运行'pip install --upgrade pip'命令,可以忽略警告信息。
尝试在 AWS EC2 实例上更新我的 certbot 证书时,我也 运行 遇到了同样的问题。我开始安装密码学,然后让虚拟环境在正确的目录中查找它,然后找不到另一个包,github 的所有回复都是他们不支持这些AWS 实例。 Soooooo,我采用了这个简单的想法,而且效果很好:
cd /opt
sudo rm -R eff.org
cd ~
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto renew --debug
也就是我删除了旧的安装,然后用“更新”命令重新安装了。工作完美。您的密钥未存储在您删除的目录中。