2016年6月3日金曜日

letsencryptのerror: ImportError: No module named interface

letsencryptを導入後しばらくほっといたらエラー発生してた。
http://blog.fspm.jp/2016/03/ec2amazon-linuxletsencryptsslhttpsnginx.html

エラー内容は
Automated renewal failed:
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in 
    from certbot.main import main
  File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/certbot/main.py", line 11, in 
    import zope.component
  File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 16, in 
    from zope.interface import Interface
ImportError: No module named interface


この2ヶ月程の間にlib名がletsencrypt -> certbotへ変わったりしてる。

原因はこれ。
https://github.com/certbot/certbot/issues/2823

解決策は
# unset PYTHON_INSTALL_LAYOUT


pipのupgradeとか、python2.6, 2.7とかなんも関係なかった、、、