Вопрос-Ответ

"ssl module in Python is not available" when installing package with pip3

"модуль ssl в Python недоступен" при установке пакета с pip3

Я успешно установил Python 3.4 и Python 3.6 на свой локальный компьютер, но не могу установить пакеты с помощью pip3.

При выполнении pip3 install <package> я получаю следующую ошибку, связанную с SSL:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
Could not fetch URL https://pypi.python.org/simple/<package>/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement <package> (from versions: )
No matching distribution found for <package>

Как я могу исправить мою установку Python3.x, чтобы я мог устанавливать пакеты с помощью pip install <package>?

Переведено автоматически
Ответ 1

Пошаговое руководство по установке Python 3.6 и pip3 в Ubuntu


  1. Установите необходимые пакеты для Python и ssl: $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev



  2. Загрузите и распакуйте "Python-3.6.8.tar.xz" из https://www.python.org/ftp/python / в свой домашний каталог.



  3. Откройте терминал в этом каталоге и запустите: $ ./configure



  4. Сборка и установка: $ make && sudo make install



  5. Устанавливайте пакеты с помощью: $ pip3 install package_name



Отказ от ответственности: Вышеуказанные команды не тестируются в Ubuntu 20.04 LTS.

Ответ 2

Если вы используете Windows и anaconda, у меня это сработало:

Я перепробовал множество других решений, которые не сработали (изменяется переменная окружения PATH ...)

Проблема может быть вызвана библиотеками DLL в папке Windows \ System32 (например, libcrypto-1_1-x64.dll или libssl-1_1-x64.dll или другими), размещенными там другим программным обеспечением.

Исправлением была установка OpenSSL из https://slproweb.com/products/Win32OpenSSL.html который заменяет библиотеки dll более свежими версиями.

Ответ 3

Если вы используете Red Hat / CentOS:

# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz
cd Python-3.6.2

# Configure the build w/ your installed libraries
./configure

# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall
Ответ 4

У меня была аналогичная проблема в OSX 10.11 из-за установки memcached, которая установила python 3.7 поверх 3.6.


ПРЕДУПРЕЖДЕНИЕ: pip настроен для местоположений, требующих TLS / SSL, однако модуль ssl в Python недоступен.


Потратил часы на отключение openssl, переустановку, изменение путей.. и ничего не помогло. Изменение версии openssl обратно на более старую версию сделало свое дело:

brew switch openssl 1.0.2e

Я нигде не видел этого предложения в Интернете. Надеюсь, оно кому-нибудь пригодится.

python pip