Сбой letsencrypt с ImportError: Нет модуля с именем прокси - PullRequest
0 голосов
/ 21 января 2020

Похоже, это похоже на другой вопрос, «Ошибка Letsencrypt с ImportError: нет модуля с именем interface», , так как это похожее сообщение об ошибке в «Amazon Linux AMI», за исключением того, что в в этом случае это другой модуль («прокси» вместо «интерфейс»), а некоторые из тех, на которые ссылается другой вопрос, даже не существуют. И другой вопрос был еще в 2017 году.

У меня был certbot-auto работает. Но два дня спустя, когда я обнаружил проблемы, которые мешали работе DNS (я вручную ввел часть имени, которое уже вводилось автоматически), и предпринял еще одну попытку получить сертификат с подстановочными знаками, certbot быстро сломался.

Когда я ввел команду (имена были изменены, чтобы защитить невинных):

certbot-auto certonly --manual --preferred-challenges DNS -d 'foo.bar.net,*.foo.bar.net'

он произвел такой вывод:

Upgrading certbot-auto 1.0.0 to 1.1.0…
Replacing certbot-auto…
Creating virtual environment…
Installing Python packages…
Installation succeeded.
Traceback (most recent call last):
File “/opt/eff.org/certbot/venv/bin/letsencrypt”, line 7, in
from certbot.main import main
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py”, line 2, in
from certbot._internal import main as internal_main
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/_internal/main.py”, line 10, in
import josepy as jose
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/init.py”, line 41, in
from josepy.interfaces import JSONDeSerializable
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py”, line 7, in
from josepy import errors, util
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py”, line 7, in
import OpenSSL
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/init.py”, line 8, in
from OpenSSL import crypto, SSL
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py”, line 12, in
from cryptography import x509
ImportError: No module named cryptography

Затем я попробовал решение, данное здесь , для «Криптографии без модуля» в Amazon Linux 2 , но когда я ввел последнюю команду в этом решении,

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

жаловался на

Requirement already satisfied: cryptography in /opt/eff.org/certbot/venv/lib/python2.7/dist-packages
Exception:
Traceback (most recent call last):
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/basecommand.py”, line 215, in main
status = self.run(options, args)
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/commands/install.py”, line 335, in run
wb.build(autobuilding=True)
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/wheel.py”, line 749, in build
self.requirement_set.prepare_files(self.finder)
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/req/req_set.py”, line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/req/req_set.py”, line 666, in _prepare_file
check_dist_requires_python(dist)
File “/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/pip/utils/packaging.py”, line 48, in check_dist_requires_python
feed_parser.feed(metadata)
File “/usr/lib64/python2.7/email/feedparser.py”, line 177, in feed
self._input.push(data)
File “/usr/lib64/python2.7/email/feedparser.py”, line 99, in push
parts = data.splitlines(True)
AttributeError: ‘NoneType’ object has no attribute ‘splitlines’

Затем, когда я попробовал оригинальную команду,

certbot-auto certonly --manual --preferred-challenges DNS -d 'foo.bar.net,*.foo.bar.net'

я получил

Error: couldn't get currently installed version for /opt/eff.org/certbot/venv/bin/letsencrypt: 
Traceback (most recent call last):
  File "/opt/eff.org/certbot/venv/bin/letsencrypt", line 7, in <module>
    from certbot.main import main
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py", line 2, in <module>
    from certbot._internal import main as internal_main
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/_internal/main.py", line 11, in <module>
    import zope.component
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 23, in <module>
    from zope.component.interfaces import IComponentArchitecture
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/component/interfaces.py", line 21, in <module>
    import zope.deferredimport
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/deferredimport/__init__.py", line 1, in <module>
    from zope.deferredimport.deferredmodule import initialize
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/deferredimport/deferredmodule.py", line 18, in <module>
    import zope.proxy
ImportError: No module named proxy

Я посмотрел на Вопрос "Нет модуля с именем интерфейса", но где он просит что-то сделать с

/root/.local/share/letsencrypt

Я не могу найти ни одного такого каталога, как "/root/.local", ни "/ home / ec2-user / .local "nor" /.local "; если я go в файловую систему root и сделаю

find -name letsencrypt

я получу

./var/lib/letsencrypt
./var/log/letsencrypt
./etc/letsencrypt
./opt/eff.org/certbot/venv/lib/python2.7/dist-packages/letsencrypt
./opt/eff.org/certbot/venv/bin/letsencrypt
./opt/trac-1.2.3-11/letsencrypt

Может кто-нибудь пролить свет на это?

...