Установка Python 3.11 с SSL в Ubuntu 16.04Python

Программы на Python
Гость
Установка Python 3.11 с SSL в Ubuntu 16.04

Сообщение Гость »


Я пытаюсь получить версию Python 3.11 (или другую более позднюю версию), работающую с поддержкой SSL, чтобы я мог заставить работать certbot. Я пробовал установить с помощью apt и собрать из исходного кода. Ни то, ни другое не работает. Ниже приведены описания обоих подходов. Мне не нужны оба исправления, мне нужен только один, и мне все равно, какой именно.

Я использую VPS и не могу установить другую версию Ubuntu.

Доказательство неисправности:

$ python3 -V Питон 3.11.3 $ sudo python3 -m venv /opt/certbot/ $ /opt/certbot/bin/pip install --upgrade pip ВНИМАНИЕ: в pip настроены местоположения, требующие TLS/SSL, однако модуль SSL в Python недоступен. Требование уже выполнено: введите /opt/certbot/lib/python3.11/site-packages (22.3.1) ВНИМАНИЕ: повторная попытка (повторить (всего = 4, подключение = нет, чтение = нет, перенаправление = нет, статус = нет)) после разрыва соединения из-за ошибки SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен. ")': /simple/pip/ ВНИМАНИЕ: повторная попытка (повторить (всего = 3, подключение = нет, чтение = нет, перенаправление = нет, статус = нет)) после разрыва соединения из-за ошибки SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен. ")': /simple/pip/ ВНИМАНИЕ: Повторная попытка (Повторить (всего = 2, подключение = Нет, чтение = Нет, перенаправление = Нет, статус = Нет)) после разрыва соединения из-за ошибки SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен. ")': /simple/pip/ ВНИМАНИЕ: повторная попытка (повторить (всего = 1, подключение = нет, чтение = нет, перенаправление = нет, статус = нет)) после разрыва соединения из-за ошибки SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен. ")': /simple/pip/ ВНИМАНИЕ: Повторная попытка (Повторить (всего = 0, подключение = Нет, чтение = Нет, перенаправление = Нет, статус = Нет)) после разрыва соединения из-за ошибки SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен. ")': /simple/pip/ Не удалось получить URL-адрес https://pypi.org/simple/pip/: возникла проблема с подтверждением сертификата SSL: HTTPSConnectionPool(host='pypi.org', port=443): превышено максимальное количество попыток с URL-адресом: /simple/ pip/ (Вызвано SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен.»)) — пропуск ВНИМАНИЕ: в pip настроены местоположения, требующие TLS/SSL, однако модуль SSL в Python недоступен. Не удалось получить URL-адрес https://pypi.org/simple/pip/: возникла проблема с подтверждением сертификата SSL: HTTPSConnectionPool(host='pypi.org', port=443): превышено максимальное количество попыток с URL-адресом: /simple/ pip/ (Вызвано SSLError («Невозможно подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен.»)) — пропуск ВНИМАНИЕ: При проверке последней версии pip произошла ошибка. Также:

$ python3 -m SSL Traceback (последний вызов последний): Файл «», строка 198, в _run_module_as_main Файл «», строка 88, в _run_code Файл «/usr/local/lib/python3.11/ssl.py», строка 100, в import _ssl # если мы не можем его импортировать, позвольте ошибке распространиться ^^^^^^^^^^^ ModuleNotFoundError: нет модуля с именем «_ssl» OpenSSL установлен:

$ версия openssl OpenSSL 3.1.3, 19 сентября 2023 г. (Библиотека: OpenSSL 3.1.3, 19 сентября 2023 г.) libssl-dev установлена:

$ sudo apt-get install openssl libssl-dev Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово libssl-dev — это уже новейшая версия (1.0.2g-1ubuntu4.20). openssl уже самая новая версия (1.0.2g-1ubuntu4.20). 0 обновлено, 0 установлено недавно, 0 удалено и 92 не обновлено. Создать из исходного кода Я пробовал многое, в том числе тщательно следовал инструкциям к выбранному ответу ниже, включая сборку openssl из исходного кода и сборку Python из исходного кода. Похоже, Python просто не может найти SSL.

Для установки пакета SSL с помощью PIP требуется, чтобы пакет SSL уже был установлен

Основное, на что следует обратить внимание, — это моя команда сборки Python:

$ sudo ./configure --with-openssl=/usr --enable-optimizations и доказательство того, что openssl живет там, где я говорю:

$ ls /usr/include/openssl/ssl.h /usr/include/openssl/ssl.h Вот фрагмент вывода сборки Python:

Необходимые биты для сборки этих дополнительных модулей не найдены: _hashlib _lzma _ssl _tkinter _uuid Чтобы найти необходимые биты, найдите в setup.py в функцииDetect_modules() имя модуля. Не удалось собрать модуль SSL! Python требует OpenSSL 1.1.1 или новее. Для пользовательских флагов компоновщика может потребоваться --with-openssl-rpath=auto Наконец, я убедился, что версия Python, которую я использую в приведенных выше тестах, совпадает с той, которую я создал, просматривая пути и даты файлов, поэтому я знаю, что меня не вводят в заблуждение устаревшие версия из какой-то предыдущей сборки.
Установить с помощью apt
Я тщательно следовал этим инструкциям:

https://iohk.zendesk.com/hc/en-us/artic ... -on-ubuntu

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

$ sudo apt install python3.11 Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Обратите внимание: выберите «postgresql-plpython3-11» для регулярного выражения «python3.11». postgresql-plpython3-11 — это уже самая новая версия (11.12-1.pgdg16.04+1). 0 обновлено, 0 установлено недавно, 0 удалено и 0 не обновлено. W: Целевые пакеты (main/binary-amd64/Packages) настраиваются несколько раз в /etc/apt/sources.list.d/PostgreSQL.list:1 и /etc/apt/sources.list.d/pgdg.list: 1 W: Целевые пакеты (main/binary-all/Packages) настраиваются несколько раз в /etc/apt/sources.list.d/PostgreSQL.list:1 и /etc/apt/sources.list.d/pgdg.list: 1 W: Целевые переводы (main/i18n/Translation-en_US) настраиваются несколько раз в /etc/apt/sources.list.d/PostgreSQL.list:1 и /etc/apt/sources.list.d/pgdg.list: 1 W: Целевые переводы (main/i18n/Translation-en) настраиваются несколько раз в /etc/apt/sources.list.d/PostgreSQL.list:1 и /etc/apt/sources.list.d/pgdg.list: 1 Моя цель — получить относительно свежую версию Python, работающую с поддержкой SSL, чтобы я мог установить certbot. Мне все равно, соберу я его сам или установлю каким-то другим способом.

Вернуться в «Python»