【问题标题】:letsencrypt failed with ImportError: No module named interfaceletencrypt 因 ImportError 失败:没有名为 interface 的模块
【发布时间】:2017-08-01 17:17:18
【问题描述】:

我使用的是 Amazon linux,我按照一些步骤使用了在 google 搜索中很容易找到的letsencrypt,但它都失败了:

Error: couldn't get currently installed version for /root/.local/share/letsencrypt/bin/letsencrypt: 
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 11, 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

我做的是:

# git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
# /opt/letsencrypt/letsencrypt-auto --debug

就是这样。所以我试图解决这个问题,但我发现的几十个解决方案都对我不起作用。

他们中的大多数人说试试这个:

取消设置 PYTHON_INSTALL_LAYOUT

但仍然有同样的错误,没有任何变化。有人说这样输入:

pip install --upgrade pip

但是在输入之后,我不能再使用 pip,它失败并出现某种命令未找到错误,所以我再次重新创建了我的服务器。

我也尝试使用 CertBot,但它给了我完全相同的错误!

我使用的是 Linux 4.4.51-40.58.amzn1.x86_64 x86_64,需要帮助。我花了将近一天的时间,但没有任何进展。

我找到的每个解决方案都不适用于我。任何建议都会非常感激。

【问题讨论】:

标签: python linux lets-encrypt amazon-linux


【解决方案1】:

删除 certbot 目录对我有用。

rm -rf /opt/eff.org/certbot/

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
sudo ./certbot-auto certonly --standalone -d example.com --no-bootstrap

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,经过长时间的运行,一个非常简单的事情在我的 AWS 实例上解决了这个问题:

    1. 将letsencrypt缓存文件移动到另一个文件夹(考虑到你以root/sudo身份运行它):

      sudo mv /root/.local/share/letsencrypt /root/.local/share/letsencrypt-old

    2. 下载了全新版本的letsencrypt

      git clone https://github.com/letsencrypt/letsencrypt

    3. 运行letsencrypt命令测试它是否再次工作:

      sudo ./letsencrypt-auto --debug

    在寻找解决方案的过程中,我还更新了 pip,这可能会有所帮助。虽然我在 pip update 后的尝试并没有像清理letsencnrypt缓存文件夹那样解决我的问题。

    我希望这会有所帮助。如果没有,我可以分享一些关于相同问题的链接:

    【讨论】:

    • 没有帮助,仍然有同样的问题
    【解决方案3】:

    对我来说,部分问题与安装 64 位软件包有关的一些奇怪的默认行为有关,但没有被 python 拾取。得到这个问题后[它主要是在此时安装],运行以下

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

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

    【讨论】:

      【解决方案4】:

      我也多次遇到这个问题,每次我都必须重复以下步骤:

      删除缓存:

       sudo rm -rf /root/.local/share/letsencrypt/
       sudo rm -rf /opt/eff.org/certbot/`
      

      那么,

      unset PYTHON_INSTALL_LAYOUT

      通过将 github 存储库克隆到 /opt/letsencrypt 来安装 Let's Encrypt

      git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
      

      然后再次运行安装程序

      /opt/letsencrypt/letsencrypt-auto --debug
      

      这些步骤对我总是有效的。

      【讨论】:

        【解决方案5】:

        我按照接下来的步骤解决了它

        1. 前往this link 下载 certbot-auto。

        2. 删除letsencrypt文件夹:

          sudo rm -rf /opt/eff.org/
          
        3. 安装加密模块:

          sudo python -m pip install cryptography
          
        4. 运行 certbot-auto --debug

          sudo ./certbot-auto --debug
          

        【讨论】:

          猜你喜欢
          • 2020-05-07
          • 2014-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-25
          • 2019-06-24
          • 2013-03-11
          • 2014-08-06
          相关资源
          最近更新 更多