我想通过 certbot 自动续订证书,但无法正常工作,出现错误“ImportError:没有名为 cryptography 的模块”
# ./certbot-auto --dry-run
错误:无法获取 /opt/eff.org/certbot/venv/bin/letsencrypt 当前安装的版本:
回溯(最近一次调用最后一次):
文件“/opt/eff.org/certbot/venv/bin/letsencrypt”,第 7 行,位于
从 certbot.main 导入 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 导入 JSONDeSerialized
文件“/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导入错误:没有名为密码学的模块
我尝试安装密码学,并得到了这个结果
sudo /opt/eff.org/certbot/venv/bin/pip 安装加密技术
您使用的是 pip 版本 9.0.1,但版本 19.2.3 可用。
您应该考虑通过“pip install --upgrade pip”命令进行升级。
然后我尝试了这个命令pip 安装 --升级 pip
弃用:Python 2.7 将于 2020 年 1 月 1 日结束其生命周期。请升级您的 Python,因为该日期之后将不再维护 Python 2.7。 pip 的未来版本将放弃对 Python 2.7 的支持。有关 pip 中 Python 2 支持的更多详细信息,请访问https://pip.pypa.io/en/latest/development/release-process/#python-2-support https://pip.pypa.io/en/latest/development/release-process/#python-2-support要求已经是最新的: /usr/lib/python2.7/dist-packages/pip-19.2.3-py2.7.egg (19.2.3) 中的 pip
如何安装加密技术?
成功安装在运行 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
这是因为letscrypt的自定义版本的python正在寻找下面的包站点包子文件夹,而在我的情况下它是空的并且包位于分发包子文件夹。
注意:如果您看到加密技术已成功安装,则无需运行“pip install --upgrade pip”命令,并且可以忽略警告信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)