Certbot: erro zope.interface

Criado em 19 abr. 2016  ·  33Comentários  ·  Fonte: certbot/certbot

Traceback (última chamada mais recente):
Arquivo "./letsencrypt", linha 7, em
de letsencrypt.main import main
Arquivo "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/main.py", linha 11, em
import zope.component
Arquivo "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/ init .py", linha 16, em
da interface de importação zope.interface
ImportError: Nenhum módulo denominado interface

certbot-auto duplicate more-info

Comentários muito úteis

Para qualquer pessoa que ainda tenha problemas com o AWS ami, você pode usar os seguintes comandos:

Para criar novos certificados:
unset PYTHON_INSTALL_LAYOUT; rm -rf /root/.local/share/letsencrypt/; /root/certbot-auto --debug;

Para renovar seus certificados.

unset PYTHON_INSTALL_LAYOUT; rm -rf /root/.local/share/letsencrypt/; /root/certbot-auto --debug renew;

Todos 33 comentários

Qual é o resultado de /root/.local/share/letsencrypt/bin/pip freeze | grep -i interface ?

/root/.local/share/letsencrypt/bin/pip freeze | interface grep -i
Você está usando o pip versão 8.0.3, mas a versão 8.1.1 está disponível.
Você deve considerar a atualização por meio do comando 'pip install --upgrade pip'.

/root/.local/share/letsencrypt/bin/pip list
acme (0,5.0)
ConfigArgParse (0.10.0)
configobj (5.0.6)
enum34 (1.1.2)
funcsigs (0.4)
idna (2.0)
endereço ip (1.0.16)
letsencrypt (0,5.0)
letsencrypt-apache (0.5.0)
linecache2 (1.0.0)
simulado (1.0.1)
ndg-httpsclient (0.4.0)
ordenado (1.1)
parsedatetime (2.1)
pbr (1.8.1)
pip (8.0.3)
pyasn1 (0,1,9)
picparser (2.14)
pyOpenSSL (0.15.1)
pyRFC3339 (1.0)
python-augeas (0,5.0)
python2-pythondialog (3.3.0)
pytz (2015.7)
pedidos (2.9.1)
ferramentas de configuração (20.2.2)
seis (1.10.0)
traceback2 (1.4.0)
unittest2 (1.1.0)
roda (0.29.0)
zope.component (4.2.2)
zope.event (4.1.0)
Você está usando o pip versão 8.0.3, mas a versão 8.1.1 está disponível.
Você deve considerar a atualização por meio do comando 'pip install --upgrade pip'.

Parece que zope.interface não foi instalado. Isto é estranho.

Eu recomendo:

  1. Executando rm -rf /root/.local/share/letsencrypt . Isso remove sua instalação de letsencrypt , mas mantém todos os arquivos de configuração, certificados, logs, etc.
  2. Certifique-se de ter uma cópia atualizada de letsencrypt-auto . Ele pode ser encontrado aqui .
  3. Execute letsencrypt-auto novamente.

Se você obtiver o mesmo comportamento, pode tentar instalar zope.interface manualmente executando:

/root/.local/share/letsencrypt/bin/pip install zope.interface

[root @ letsencrypt] # ./letsencrypt-auto --help --debug
Verificando se há uma nova versão ...
Criando ambiente virtual ...
Instalando pacotes Python ...
A instalação foi bem-sucedida.
Solicitando privilégios de root para executar o letsencrypt ...
/root/.local/share/letsencrypt/bin/letsencrypt --help --debug
Traceback (última chamada mais recente):
Arquivo "/root/.local/share/letsencrypt/bin/letsencrypt", linha 7, em
de letsencrypt.main import main
Arquivo "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/main.py", linha 11, em
import zope.component
Arquivo "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/ init .py", linha 16, em
da interface de importação zope.interface
ImportError: Nenhum módulo denominado interface
[root @ letsencrypt] # /root/.local/share/letsencrypt/bin/pip install zope.interface
Coletando zope.interface
Requisito já satisfeito (use --upgrade para atualizar): setuptools em /root/.local/share/letsencrypt/lib/python2.7/dist-packages (de zope.interface)
Instalando pacotes coletados: zope.interface
Zope.interface instalado com sucesso
Você está usando o pip versão 8.0.3, mas a versão 8.1.1 está disponível.
Você deve considerar a atualização por meio do comando 'pip install --upgrade pip'.

Linux ip-10-11-180-115 3.14.20-20.44.amzn1.x86_64 # 1 SMP Seg 6 de outubro 22:52:46 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

Eu já tinha essas alternativas. sem sucesso

E depois de fazer /root/.local/share/letsencrypt/bin/pip install zope.interface , letsencrypt-auto ainda dá erro ImportError: No module named interface ?

sim. ainda não funciona.

Parece o idiota de # 2823. Existem alguns problemas conhecidos com AMIs que ainda não foram resolvidos. Algumas pessoas tiveram sucesso com este comentário .

merda: P

Não encontro este post. Mas funciona.

# pip install pip --upgrade
# pip install virtualenv --upgrade
# virtualenv -p / usr / bin / python27 venv27
# venv27 / bin / activate
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt
# ./letsencrypt-auto certonly --debug --standalone -d

https://github.com/letsencrypt/letsencrypt/issues/1680#issuecomment -170641501

obrigado.

Excelente! Estou feliz que funcione.

Para mim, este cmd resolveu o problema:
sudo desconfigurar PYTHON_INSTALL_LAYOUT

@ rmed19 funcionou para mim também, obrigado!

pip install --upgrade pip
e
pip install virtualenv --upgrade
então
./certbot-auto renew
funcionou

Eu só tive que atualizar as coisas como @nohona apontou. A questão é: há alguma maneira de evitar que isso aconteça? Tenho tido sucesso neste servidor por um tempo até hoje, o que me obrigou a executar esses comandos de atualização.

Nenhuma das opções acima está funcionando para mim ...

$ pip install --upgrade pip
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages
$ pip install virtualenv --upgrade
Requirement already up-to-date: virtualenv in ./.local/lib/python2.7/site-packages
$ cd letsencrypt/
$ ./certbot-auto renew
Error: couldn't get currently installed version for /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt:
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from certbot.main import main
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/certbot/main.py", line 11, in <module>
    import zope.component
  File "/home/ec2-user/.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

Estou tendo este mesmo problema:

[root<strong i="6">@www</strong> ec2-user]# /root/.local/share/letsencrypt/bin/pip -V
pip 9.0.1 from /root/.local/share/letsencrypt/local/lib/python2.7/dist-packages (python 2.7)
[root<strong i="7">@www</strong> ec2-user]# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
[root<strong i="8">@www</strong> ec2-user]# /root/.local/share/letsencrypt/bin/pip install virtualenv --upgrade
Collecting virtualenv
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
[root<strong i="9">@www</strong> ec2-user]# /root/.local/share/letsencrypt/bin/pip install zope.interface
Collecting zope.interface
Requirement already satisfied: setuptools in /root/.local/share/letsencrypt/lib/python2.7/dist-packages (from zope.interface)
Installing collected packages: zope.interface
Successfully installed zope.interface-4.3.3
[root<strong i="10">@www</strong> ec2-user]# pip install virtualenv --upgrade
Requirement already up-to-date: virtualenv in /usr/local/lib/python2.7/site-packages
[root<strong i="11">@www</strong> ec2-user]# /home/ec2-user/certbot-auto renew --debug
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
[root<strong i="12">@www</strong> ec2-user]# 

O mesmo problema no Digital Ocean:
./certbot-auto renew 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 ...
Acho que é um problema com o 0.11.1, mas ainda não tenho certeza do motivo.

Nenhuma das soluções até agora funcionou para eu renovar meu certificado. No entanto, usar uma solução Docker funcionou perfeitamente. Cerca de 15 segundos de inatividade. Obrigado, usuário do Dockerhub gzm55

Instale o docker e, em seguida:
pull gzm55/certbot

Desligue o servidor temporariamente para liberar a porta 443 (parada do apache ou parada do pm2, etc) e execute isto (altere "YOUR_DOMAIN.COM"):
docker run -it --rm --net host -v /etc/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt gzm55/certbot certonly --standalone --text -d YOUR_DOMAIN.COM "$@"

Em seguida, reinicie o servidor.

Consegui contornar meu problema reiniciando com o processo de instalação e renovação do certbot seguindo as instruções atuais no site desde o início. Acho que o problema surgiu em algum lugar após as atualizações das ferramentas subjacentes e já que fazia muito tempo desde a instalação inicial.

Estou tendo esse problema agora. Eu removi e reinstalei o letsencrypt & certbot, mas recebo consistentemente a mensagem ...

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

Eu tentei .... pip install zope.interface cujo único efeito é acelerar o relato do erro acima.

Qualquer conselho muito apreciado, meu Cert expira em 24 horas.

Eu tive o mesmo problema no Amazon Linux hoje. Executar certbot-auto com sudo corrigiu para mim.

Estou executando como root no Amazon Linux. Esta é uma renovação; a instalação cert original funcionou bem nesta mesma máquina. Não tenho certeza do que teria mudado.

Tentei as etapas acima para atualizar o pip e o virtualenv ... sem sorte. :-( O certificado expira em 9 dias.

Eu tive muitos problemas, mas achei o seguinte melhor do que a CLI para meus propósitos.

https://github.com/Daplie/node-greenlock

Esta sequência de comandos parece ter corrigido o problema na minha instância AWS:

sudo yum install python-virtualenv python27-virtualenv "python*zope*"
rm -rf ~/.local/share/letsencrypt
./certbot-auto --debug renew

Alguns dos pacotes instalados podem ser redundantes.

Eu também executei:

~/.local/share/letsencrypt/bin/pip install pip --upgrade
~/.local/share/letsencrypt/bin/pip install virtualenv --upgrade

mas parece não ter surtido efeito.

A seguinte essência funcionou para mim:

$ sudo -H pip install zope.interface -U
$ sudo -H pip install certbot -U

por exemplo, eu tive que "atualizar" certbot após instalar zope.interface , embora já tenha instalado certbot anteriormente.

Para qualquer pessoa que ainda tenha problemas com o AWS ami, você pode usar os seguintes comandos:

Para criar novos certificados:
unset PYTHON_INSTALL_LAYOUT; rm -rf /root/.local/share/letsencrypt/; /root/certbot-auto --debug;

Para renovar seus certificados.

unset PYTHON_INSTALL_LAYOUT; rm -rf /root/.local/share/letsencrypt/; /root/certbot-auto --debug renew;

Parte do problema para mim estava relacionado a algum comportamento padrão estranho em torno de pacotes de 64 bits.

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

Na verdade, corrigiu o problema

Apenas para adicionar um pouco de cor à solução que @lifeofguenter postou - solução para mim no Linux AWS quando meu script de atualização falha parece ser diferente a cada vez! Desta vez, logado como root sudo su - e uma variedade de atualizações não funcionou. Constantemente obtendo zope.interface não definido.

A última solução tentada, que funcionou, foi:

$ pip install zope.interface -U
$ pip install certbot -U

Sem sudo-ing (usando como root)

Mas então ./certbot-auto --debug renew falhou novamente com a mensagem de interface sem zope. Então tentei sudo ./certbot-auto --debug renew e funcionou . Não está claro por que, meio que não deveria. Não tinha funcionado antes!

Em algum estágio, eu vi uma referência ao pip v 6.1.6 aparecendo, então está lá em algum lugar, mas eu removi e reinstalei todas as coisas relevantes. AWS + root / sudo / letsencrypt talvez armazenando uma dependência em algum lugar ao longo da cadeia que não é atualizada quando o pip está sendo atualizado?

obrigado @ilamp ! funcionou como um encanto

Estou usando AWS Linux e tive o mesmo problema: "Nenhum módulo chamado erro de interface". Fiz o que o @ilamp propôs, mas não funcionou. Depois de fazer o seguinte, o problema foi resolvido:

$ rm -rf /opt/eff.org

Outra atualização, uma vez que os locais de instalação são diferentes, novamente meu problema foi em torno do local de instalação dos pacotes de 64 bits no AWS por PIP. Isso foi corrigido instalando uma vez e, em seguida, executando

\cp -r /opt/eff.org/certbot/venv/lib64/* /opt/eff.org/certbot/venv/lib/

O local pode precisar ser alterado conforme o local dos arquivos de instalação se movem com as atualizações, mas a correção geral permaneceu a mesma.

Isso foi em uma instância AWS AMI.

Então, acho que descobri qual é o problema: qualquer coisa que tenha código-fonte ou cabeçalhos C é construída em 64 bits e colocada em / lib64 dist-packages, qualquer coisa que não vá para / lib. Isso significa cffi, cryptography e zope.interface, e eles precisam ser reconstruídos como 32 bits para funcionar, ou então rodar como 64 bits como o método do Namingwaysway (já que copia inteiramente o Python de 64 bits).

Eu estava regularmente fazendo a renovação certbot-auto em um ami amazon.
Um dia parou de funcionar com aquele erro.
Tudo que eu tive que fazer é:

rm -rf ~/.local/share/letsencrypt
 sudo ./certbot-auto renew --debug

Ainda parece ser um problema ao renovar - mesmo com

rm -rf ~/.local/share/letsencrypt
 sudo ./certbot-auto renew --debug

e / ou

unset PYTHON_INSTALL_LAYOUT; rm -rf /root/.local/share/letsencrypt/; /root/certbot-auto --debug renew;

Como tenho apenas 24 horas para renovar este certificado, acho que vou apenas instalar manualmente o certificado usando uma CA confiável, pois parece ser um processo mais suave para instâncias de AMI, seria bom fazer isso funcionar sem problemas.

EDITAR: apenas como uma tentativa final após postar isso, eu tentei

$ rm -rf /opt/eff.org

De acordo com o comentário de 0xnm, isso pareceu funcionar! Obrigado

Esta página foi útil?
0 / 5 - 0 avaliações