Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

letsencrypt failed with ImportError: No module named interface

I'm using Amazon linux, and I followed some steps for using letsencrypt that easily found in google search, but all it fails with:

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

What I do is:

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

That's it. So I tried to fix this, but dozens of solution that I found all won't worked to me.

Most of them said try this:

unset PYTHON_INSTALL_LAYOUT

But still got same error, nothing changes. And someone said that type this:

pip install --upgrade pip

But after typed that, I can't use pip anymore, it failed with some kind of command not found error, so I had recreated my server again.

I also tried to use CertBot, but it gives me exactly same error!

I'm using Linux 4.4.51-40.58.amzn1.x86_64 x86_64, need a help. I spent almost a day, but nothing progressed.

Every solution that I was found were not worked to me. Any advice will very appreciate it.

like image 625
modernator Avatar asked Mar 11 '17 10:03

modernator


4 Answers

Removing certbot directory did the trick for me.

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
like image 99
Vuong Dang Avatar answered Nov 19 '22 19:11

Vuong Dang


I had same issue and after a long run, a very simple thing solved this issue on my AWS instance:

  1. Move the letsencrypt cache files to another folder (considering you run it as root/sudo):

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

  2. Downloaded a brand new version of letsencrypt

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

  3. Run the letsencrypt command to test if its working again:

    sudo ./letsencrypt-auto --debug

During my search for a solution I also updated pip which might have helped. Although my attempts after pip update did not solved my issue in the same way as cleaning up the letsencnrypt cache folder.

I hope this helps. If not, some links I can share about same issue:

  • certbot zope.interface error
  • no module named interface
  • letsencrypt failed with no module named interface
like image 5
Marcio Jasinski Avatar answered Nov 19 '22 20:11

Marcio Jasinski


Part of the issue for me was related to some strange default behavior around 64 bit packages installing, but not being picked up by python. After getting this issue [it's mostly installed at this point], run the following

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

Then retry the command. The install locations of the python virtual environment change with different versions and operating systems, but the general principle has helped me debug two different installs.

like image 3
Jeremy Freeman Avatar answered Nov 19 '22 21:11

Jeremy Freeman


I have also faced this issue multiple times and every time I have to repeat these following steps:

Remove cache:

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

then,

unset PYTHON_INSTALL_LAYOUT

Install Let’s Encrypt by cloning the github repository into /opt/letsencrypt

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

then run installer again

/opt/letsencrypt/letsencrypt-auto --debug

these steps always works for me.

like image 2
Krish Avatar answered Nov 19 '22 19:11

Krish