"Модуль 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
-
Установите необходимые пакеты для Python и ssl: $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
-
Загрузите и распакуйте "Python-3.6.8.tar.xz" с https://www.python.org/ftp/python/ в свой домашний каталог.
-
Откройте терминал в этом каталоге и запустите: $./configure
-
Сборка и установка: $ sudo make && sudo make install
-
Установите пакеты с помощью: $ 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.
Мое решение:
- Переустановите openssl с помощью
brew uninstall openssl, brew install openssl
; -
В соответствии с рекомендациями 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 на самом деле очень ясна, и следование инструкциям сделало свою работу, тогда как другие ответы, которые я нашел здесь, не решали эту проблему.
-
Сначала установите Python 3.xx из исходного кода, используя, например, версию 3.6.2 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
-
убедитесь, что у вас установлен openssl, запустив brew install openssl
-
распакуйте его и перейдите в каталог python: tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2
-
затем, если версия 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 задания)