После установки и использования сценария 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.