Я установил python3.11 на свой новый devbox с системой Debian 9. Все идет хорошо, но когда я использую pip для установки требований, возникает ошибка. Подробности следующие.
➜ pip3 install virtualenv
Defaulting to user installation because normal site-packages is not writeable
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement virtualenv (from versions: none)
ERROR: No matching distribution found for virtualenv
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
WARNING: There was an error checking the latest version of pip.
Я думаю, что ключевое сообщение об ошибке заключается в следующем: pip настроен для местоположений, требующих TLS/SSL, однако модуль SSL в Python недоступен и
➜ which openssl
/usr/local/bin/openssl
➜ openssl version
OpenSSL 1.0.2o 27 Mar 2018
Я обновил openssl до 3.0 и пересобрал python3.10, тоже не работает.
Использование pyenv для установки Python также не помогает. Возникла ошибка: требование «_ssl» не удовлетворено.
================= =====================
Наконец, я переустанавливаю систему с debian9 на debian10. Версия openssl по умолчанию — OpenSSL 1.1.1n. Все ошибки исчезают.
Проблема устранена.
Я установил python3.11 на свой новый devbox с системой Debian 9. Все идет хорошо, но когда я использую pip для установки требований, возникает ошибка. Подробности следующие. [code]➜ pip3 install virtualenv Defaulting to user installation because normal site-packages is not writeable WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/ Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping ERROR: Could not find a version that satisfies the requirement virtualenv (from versions: none) ERROR: No matching distribution found for virtualenv WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping WARNING: There was an error checking the latest version of pip. [/code] Я думаю, что ключевое сообщение об ошибке заключается в следующем: pip настроен для местоположений, требующих TLS/SSL, однако модуль SSL в Python недоступен и [code]Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")[/code] Я приложил много усилий: [list] [*]переустановил Python с помощью openssl в соответствии с вопросом: 57586800 установите другие требования в соответствии с вопросом: 45954528 [*]установите доверенный хост, например: [code]pip config set global.trusted-host \ "pypi.org files.pythonhosted.org pypi.python.org" \ --trusted-host=pypi.python.org \ --trusted-host=pypi.org \ --trusted-host=files.pythonhosted.org
[/code]
[/list] Вышеуказанные методы мне не подходят. Итак, мне интересно, что пошло не так? Подробнее: [list] [*]Прежде чем скомпилировать Python, я запустил: [list] [code]sudo apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.6 libgdm-dev libdb4o-cil-dev libpcap-dev[/code] для установки требований SSL (может быть?) [*]а затем я запускаю следующие команды для установки openssl. [/list] [code]cd /usr/src curl openssl.org/source/openssl-1.0.2o.tar.gz | tar xz cd openssl-1.0.2o ./config shared --prefix=/usr/local/ sudo make sudo make install [/code]
[*]Я обнаружил, что Python2.7 по умолчанию работает хорошо, а Python3 — нет [code]➜ ~ python3 -V Python 3.11.3 ➜ ~ python3 -c "import ssl; print(ssl.OPENSSL_VERSION_INFO)" Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python3.11/ssl.py", line 100, in import _ssl # if we can't import it, let the error propagate ^^^^^^^^^^^ ModuleNotFoundError: No module named '_ssl' ➜ ~ python -V Python 2.7.13 ➜ ~ python -c "import ssl; print(ssl.OPENSSL_VERSION_INFO)" (1, 1, 0, 12, 15) [/code]
[*]Версия openssl, необходимая для Python3.10+, должна быть выше 1.1.1([code]Note PEP-644 which requires OpenSSL >= 1.1. 1 is released in Python 3.10[/code] )? Но openssl в моем Debian9 — 1.0.2o. [code]➜ which openssl /usr/local/bin/openssl ➜ openssl version OpenSSL 1.0.2o 27 Mar 2018 [/code] Я обновил openssl до 3.0 и пересобрал python3.10, тоже не работает. [*]Использование pyenv для установки Python также не помогает. Возникла ошибка: требование «_ssl» не удовлетворено. [/list] ================= ===================== Наконец, я переустанавливаю систему с debian9 на debian10. Версия openssl по умолчанию — OpenSSL 1.1.1n. Все ошибки исчезают. Проблема устранена.