Назад | Перейти на главную страницу

Letsencrypt / certbot в Debian Stretch: ImportError: невозможно импортировать имя jose

После установки и использования сценария certbot, предлагаемого пакетом Debian (версия 0.10.2), я получил запрос на предоставление подстановочного сертификата. Поскольку это невозможно с версией certbot из репозитория Debian, я пошел обновить certbot.

Самый питонный способ, казалось, обновлялся с помощью pip:

pip install certbot --upgrade

После обновления certbot перестал работать из-за конфликтов версий. Я предполагаю, что эта линия

load_entry_point('certbot==0.10.2', 'console_scripts', 'certbot')()

предотвращает

/usr/bin/certbot

интерфейс скрипта для запуска с более новой версией certbot пакета python. Теперь я почти вернулся к работе с исходной версией Debian, но проблема не исчезла:

  File "/usr/bin/certbot", line 11, in <module>
    load_entry_point('certbot==0.10.2', 'console_scripts', 'certbot')()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 484, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2707, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2325, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2331, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/dist-packages/certbot/main.py", line 13, in <module>
    from acme import jose

Насколько я понимаю (пока я не эксперт по Python), acme пакет установлен:

root@cloud:~# pip show acme
Name: acme
Version: 0.26.1
Summary: ACME protocol implementation in Python
Home-page: https://github.com/letsencrypt/letsencrypt
Author: Certbot Project
Author-email: client-dev@letsencrypt.org
License: Apache License 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: cryptography, six, pytz, PyOpenSSL, pyrfc3339, setuptools, requests, josepy, requests-toolbelt, mock

Я могу получить то же сообщение об ошибке, создав небольшой тестовый сценарий и запустив его с помощью всего лишь

from acme import jose

как содержание:

root@cloud:~# python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from acme import jose
ImportError: cannot import name jose

Я был бы признателен за руку помощи, прежде чем углубляться в глубины управления пакетами Python.