"Модуль 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. Сборка и установка: $ sudo make && sudo make install

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

Ответ 2

Если вы находитесь в 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

Ответ 3

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

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

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

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

Ответ 4

Согласна с ответом от mastaBlasta. Работал на меня. Я столкнулся с той же проблемой, что и описание темы.

Окружающая среда: MacOS Sierra. И я использую Homebrew.

Мое решение:

  1. Переустановите openssl с помощью brew uninstall openssl, brew install openssl;
  2. В соответствии с рекомендациями Homebrew сделайте следующее:

    echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

    export LDFLAGS="-L/usr/local/opt/openssl/lib"

    export CPPFLAGS="-I/usr/local/opt/openssl/include"

Ответ 5

В Ubuntu это может помочь:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

Ответ 6

Проблема, вероятно, вызвана отсутствием библиотеки.

Перед установкой python 3.6 убедитесь, что вы установили все библиотеки, необходимые для python.

$ sudo apt-get install build-essential checkinstall 
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Больше информации в Как установить Python 3.6.0 на Ubuntu и LinuxMint

Ответ 7

Я столкнулся с той же проблемой на Windows 10. Моя очень специфическая проблема связана с моей установкой Anaconda. Я установил Anaconda и по пути Path/to/Anaconda3/, там появляется python.exe. Таким образом, я вообще не устанавливал python, потому что Anaconda включает python. При использовании pip для установки пакетов, я обнаружил тот же отчет об ошибке, pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ,

Решение было следующим:

1) вы можете снова скачать python на официальном сайте;

2) Перейдите в каталог, где находится "Python 3.7 (64-bit).lnk"

3) import ssl и exit()

4) введите cmd, например, "Python 3.7 (64-bit).lnk" -m pip install tensorflow, "Python 3.7 (64-bit).lnk" -m pip install tensorflow.

Здесь все готово.

Ответ 8

Если вы находитесь на OSX и скомпилировали python из источника:

Установите openssl с помощью brew brew install openssl

Обязательно следуйте инструкциям brew, чтобы задать настройки CPPFLAGS и LDFLAGS. В моем случае я использую формулу [email protected] brew, и мне нужны эти 3 параметра для процесса сборки python для правильной ссылки на мою библиотеку SSL:

export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

Предположим, что библиотека установлена ​​в этом месте.

Ответ 9

Если вы на Windows, и использовать Anaconda вы можете попробовать запустить "пункт установить..." в Anaconda Подскажите вместо cmd.exe, так как пользователь willliu1995 предлагает здесь. Для меня это было самое быстрое решение, не требующее установки дополнительных компонентов.

Ответ 10

У меня была та же проблема, и мне удалось решить с помощью следующих шагов:

sudo yum install -y libffi-devel
sudo yum install openssl-devel
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
sudo tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
sudo ./configure --enable-optimizations
# Install into /usr/local/bin/python3.7, don't overwrite global python bin
sudo make altinstall

в зависимости от химической завивки вам может не понадобиться sudo.

Results:
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1

теперь должен быть в состоянии бежать

python3.7 -V 

а также

pip3.7 -V

При установке пакетов:

pip3.7 install pandas

или, в зависимости от разрешений, вы также можете добавить флаг --user следующим образом:

pip3.7 install pandas --user

Ответ 11

У меня была та же проблема в течение последних двух дней, и я исправил ее прямо сейчас.

Я пытался использовать параметр --trust-host с DigiCert_High_Assurance_EV_Root_CA.pem, не работал, я не смог установить модуль ssl (он говорит, что он не может быть установлен для версий python больше 2.6), устанавливая переменную $PIP_CERT также не исправил его, и я установил libssl1.0.2 и libssl1.0.0. Также стоит упомянуть, что у меня не было файла ~/.pip/pip.conf, и его создание также не решило ошибку.

Что, наконец, решило, снова установило python3.6 с make. Загрузите Python-3.6.0.tgz с веб-сайта, запустите configure, затем make, make test и make install. Надеюсь, это сработает для вас.

Ответ 12

У меня была такая же проблема при попытке установить python3.7 на машине с Ubuntu14.04. Проблема заключалась в том, что у меня было несколько пользовательских папок в моем PKG_CONFIG_PATH и в моем LD_LIBRARY_PATH, что мешало процессу сборки Python находить системные библиотеки openssl.

так что попробуйте очистить их и посмотреть, что происходит:

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""

Ответ 13

Может кто-нибудь помочь мне с той же проблемой, но для Microsoft Windows?

У меня проблемы с поиском решения для окон здесь.

Ответ 14

Я попробовал МНОЖЕСТВО способов решить эту проблему, и ни один не решил. Я в настоящее время на Windows 10.

Единственное, что сработало, было:

  • Удалить Анаконду
  • Удалить Python (я использовал версию 3.7.3)
  • Установите Python снова (не забудьте отметить опцию автоматического добавления в PATH)

Затем я скачал все необходимые библиотеки, используя PIP... и работает!

Не знаю почему, или проблема была как-то связана с Анакондой.

Ответ 15

Документация Python на самом деле очень ясна, и следование инструкциям сделало свою работу, тогда как другие ответы, которые я нашел здесь, не решали эту проблему.

  1. Сначала установите Python 3.xx из исходного кода, используя, например, версию 3.6.2 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  2. убедитесь, что у вас установлен openssl, запустив brew install openssl

  3. распакуйте его и перейдите в каталог python: tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2

  4. затем, если версия Python <3.7, запустите

CPPFLAGS="-I$(brew --prefix openssl)/include"\LDFLAGS="-L$(brew --prefix openssl)/lib"\./configure --with-pydebug 5. В заключение запустите make -s -j2 (-s - флаг молчания, -j2 говорит вашей машине использовать 2 задания)