Letsencrypt ImportError: No module named interface on amazon linux while renewing

Letsencrypt ImportError: No module named interface on amazon linux while renewing

今天,当我尝试使用此命令续订我的证书时,我遇到了错误

/opt/letsencrypt/letsencrypt-auto renew --config /etc/letsencrypt/config.ini --agree-tos && apachectl graceful

也试过这个命令

/opt/letsencrypt/letsencrypt-auto renew

错误:

Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from certbot.main import main
  File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/certbot/main.py", line 12, in <module>
    import zope.component
  File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 16, in <module>
    from zope.interface import Interface
ImportError: No module named interface

我做了很多研究没有找到解决方案。

经过大量研究后我找到了。

您必须取消设置 Python 安装布局

 unset PYTHON_INSTALL_LAYOUT

然后更新 letsencrypt

 /opt/letsencrypt/letsencrypt-auto -v

有关更多信息,请参阅此博客 https://o-mkar.com/facing-problem-while-renewing-letsencrypt-certificates-importerror-no-module-named-interface-amazon-linux

sudo pip uninstall zope.interface 并重新安装 zope.interface

sudo pip install zope.interface

我遇到了同样的问题,按照此 post 中的说明升级 pip 和 virtualenv 对我有用。

sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv
rm -rf ~/.local/share/letsencrypt
/opt/letsencrypt/letsencrypt-auto --debug

对我来说,部分问题与 64 位包安装时一些奇怪的默认行为有关,但 python 没有发现。遇到这个问题后[此时大部分已安装],运行以下[假设它尝试安装在/root/.local/share/letsencrypt/]

cd /root/.local/share/letsencrypt
\cp -r ./venv/lib64/* ./venv/lib/

然后重试命令。 python 虚拟环境的安装位置随着版本和操作系统的不同而变化,但总的原则帮助我调试了两个不同的安装。

这对我有用,否则 zope 和密码学一直显示安装相互依赖导致死锁。参见 Git Repo

sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope