pip настроен с местоположениями, которые требуют TLS / SSL, однако модуль ssl в Python недоступен


217

Я использую Python3.6, когда я пытаюсь установить «модули» с помощью pip3, я сталкиваюсь с упомянутой ниже проблемой «pip настроен в местах, где требуется TLS / SSL, однако модуль ssl в Python недоступен»


1
Операционная система?
ZiTAL


1
Операционная система Oracle Linux 7.x
Santosh Kumar G

1
Вы установили pip из менеджера пакетов? Если вы установили компиляцию, сначала установите libssl-devили установите ssl из pip pip install ssl stackoverflow.com/questions/41098252/…
ZiTAL

37
@ZiTAL pipне работает из-за, sslи вы просите установить ssl, с pip :)
Рамазан Полат

Ответы:


191

Для Windows 10, если вы хотите использовать pip в обычном cmd, а не только в приглашении Anaconda. вам нужно добавить 3 пути окружения. как следующие:

D:\Anaconda3; 
D:\Anaconda3\Scripts; 
D:\Anaconda3\Library\bin 

большинство людей добавляют только D: \ Anaconda3 \ Scripts;


1
Спасибо, я добавил D: \ Anaconda3 \ Library \ bin, и он работает, кстати, libssl-1_1-x64.dll находится в этой папке. (win10x64, Python 3.7)
APET

когда вы добавляете эти три в свой путь близко, cmd возвращается к нему и пытается снова, это должно работать.
user3568896

Что вы подразумеваете под путями окружения? Вы имеете в виду переменную environemnt PATH? плюс у меня нет этих папок на моем диске D, они должны быть созданы при установке Anaconda?
Амит Раз

Также для Windows 8.1
Антуан

1
Это НЕ работает, если вы не используете Anaconda. Я столкнулся с этой проблемой при установке OSGeo4W64 и QGIS 3.10.2. Добавление того, что я собираю, является правильным путем к переменной PATH, не решает проблему (например:) C:\Program Files\QGIS 3.10\apps\Python37\Scripts.
CNIDog

186

MAC OS

У меня была та же проблема в Mac OS (Mojave), и я решил проблему, упомянутую в этой ссылке - проблема Openssl .

  1. Если у вас нет Homebrew или вы не знаете, что такое Homebrew:

    / usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

  2. Или, если у вас уже установлен Homebrew:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Обновление: имейте в виду, что мне пришлось использовать --ignore-dependenciesфлаг, потому что установлены другие пакеты, которые зависят от OpenSSL.

Дополнительно, если проблема вызвана после использования pyenv , вы можете исправить это с помощью:

brew reinstall python

5
После установки другой Python версии pip был сломан. это решение помогло мне восстановить.
iMitwe

15
почему github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb также добавляется как зависимость? :) Я думаю, что это должно быть удалено, поскольку это совершенно не связано и потенциально небезопасно
Марк

1
Я понимаю, что это может представлять угрозу безопасности, но все пользователи просили использовать пакет по официальной ссылке пакета - github.com/kelaberetiv/TagUI/issues/635
Vaulstein,

1
@Vaulstein Теперь, когда вы упомянули об этом. Я думаю, что я установил некоторые пакеты, используя brew, прежде чем это сломалось. Это было gpg.
пристрастился

3
После обновления с Mojaveдо Catalina, я ударил это. Мне нужно было только brew update && brew upgradeчтобы он снова заработал. Спасибо за совет!
rustyMagnet

36

Для пользователей Debian может быть полезно следующее:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

Затем перейдите в папку с исходным кодом библиотеки Python 3.X и запустите:

./configure
make
make install

@ MehmetKurtipek, я отредактировал ответ, чтобы уточнить шаг. Если это по-прежнему не помогает, пожалуйста, проясните вашу проблему
Рафаэль Б

5
оказалось, что у Python3.7 есть хорошие проблемы наряду с Ubuntu 14.04 и старше. Минимальный необходимый пакет SSL для Python3.7 не совместим со старым Ubuntus. Так что спасибо за редактирование :)
Мехмет Куртипек

@MehmetKurtipek Мой сервер - 1404. Итак, какая последняя версия Python, у которой нет этой проблемы. У меня Python 3.7.4 есть та же проблема ...
предложение не может отказаться

@ MehmetKurtipek Вы решили проблему без обновления системы? Я также работаю над 14.04
предложение не может отказаться от

используя mint19 и python 3.8, это
решило

21

Для будущих пользователей Oracle Linux, пытающихся решить эту проблему, вот что сработало для меня. Сначала установите недостающие библиотеки:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

Затем перейдите в библиотеку Python3.X и запустите:

make
make install 

1
Этот ответ хорошо решил проблему на моем CentOS 7.
Макс

Что это за библиотеки? Зачем они нужны?
Мохит Мотвани

Для этого требуется безопасное соединение через Интернет - например, когда вы запускаете 'pip install'
limboy


20

Для сентос 7:

Установите openssl:

sudo yum install openssl-devel

теперь каталог goto python, где мы извлекли tar,

запустить ниже команд

sudo ./configure
sudo make
sudo make install

Это решит проблему в сентосах ...


10

Для Windows 10, Windows 7 Если pip install не работает по приглашению CMD, запустите его, используя приглашение Anaconda - это работает.

https://github.com/pypa/virtualenv/issues/1139


6
Я знаю правильный ответ, если вы хотите использовать pip в обычном cmd, а не Anaconda, вам нужно добавить 3 пути к окружению: например, так: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin теперь только скрипты!
无名小路

8

В случае, если ваш python pyenvустановлен, где pyenv установлен вместе с homebrew на macOS, может появиться более новая версия, которая исправляет это:

$ brew update && brew upgrade pyenv

Затем переустановите версию Python:

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N) 

Обратите внимание, что немного перезаписать существующую установку Python таким образом, но в моем случае это сработало.


5

Для OpenSUSE аналогичным образом, но с некоторыми изменениями перечисленных выше пакетов:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

Затем cdк источникам Python DIR и

make
make install

или

make
make altinstall

И, возможно

ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload

должен быть выполнен для пользователей OpenSUSE. См., Что установка Python 3.7 не работает на openSUSE Leap 42.3


5

Аналогично приведенному выше решению переустановите версию python с помощью pyenv.

Каким-то образом я обновил свой, opensslкоторый сломал Python версии Python.

pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
...

Первая строка говорит, что это зависит от доморощенного openssl.



4

Работал на меня.

apt-get install libssl-dev

Используйте это, чтобы включить ssl для pip. Дайте мне знать, если у кого-то возникнут проблемы.


3

Я столкнулся с этой проблемой при установке Visual Studio Code Pylint из командной строки VS Code. Мне удалось решить эту проблему, открыв каталог установки Anaconda и запустив

pip install pylint

Тогда VS Code был счастлив, но это не решило проблему как запущенную

& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint

в значительной степени выдал ту же ошибку, поэтому кажется, что VS Code не может получить доступ к модулям Python.

Обратите внимание, что VS Code выбирает первый env-файл Python, который он видит при установке, в левом нижнем углу экрана указывается, какой env используется. Нажатие на эту область позволяет установить среду. Таким образом, даже если вы запустили установку pip для среды, VS Code мог бы искать другую.

Наилучшим подходом было убедиться, что в коде VS выбрана правильная среда Python и эта же среда находится в системной переменной PATH (в разделе «Свойства системы» - «Дополнительно» -> «Переменные среды»).

Под переменной Path, отредактируйте и перейдите к определенному каталогу Anaconda, который вы хотите, чтобы VSCode использовал и добавил в PATH, мне нужно было добавить следующее:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

Ваш каталог установки Anaconda может отличаться. Следует отметить, что в Windows переменная PATH не вступит в силу, пока вы не перезапустите терминал. В этом случае закройте и повторно введите код VS. Если вы используете Terminal или PS Shell, закройте и снова откройте и проверьте Path, чтобы убедиться, что он включен.


3

Я использую Windows 10 и установил Miniconda 3 с Python 3.7.

Я решил эту ошибку, следуя этой https://github.com/conda/conda/issues/8273

В частности, я скопировал следующие файлы из C:\Users\MyUser\Miniconda3\Library\binв C:\Users\MyUser\Miniconda3\DLLs:

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb


2

Если у вас нет Chocolatey, установите его - отсюда: https://chocolatey.org/docs/installation

Вы можете просто скопировать вставить один вкладыш командной строки и выполнить его из командной строки с повышенными привилегиями.

Установите anaconda, используя командную строку:

choco install anaconda3

Установите переменные среды:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

и затем выполните команду, которая не удалась. В моем случае это было:

pip install conan

Anaconda использует отдельную установку на python, а pip также специфична для anaconda.


1

Как сказал Токки, он также работает для Windows 7.

«Подведите курсор мыши к значку Windows (внизу слева) и начните вводить« Anaconda ». Там должны появиться несколько соответствующих записей. Выберите« Anaconda Prompt ». Откроется новое командное окно с именем« Anaconda Prompt ».»

Тогда пипс работает.

Следующее также помогло импортировать xgboost: https://www.youtube.com/watch?v=05djBSOs1FA


Ищете эквивалент Linux ... но в любом случае, почему это сработало бы, а использование pip из командной строки - нет? это имеет смысл только в том случае, если в какой-то момент вы уже перестроили Python от Anaconda с помощью SSL.
matanster

Я понятия не имею, почему, но то, что вы говорите, звучит разумно
Аян Омаров

1

Если кто-то использует Arch Linux OS, я решил проблему TLS / SSL, выполнив следующее:

sudo pacman -S openssl

Тогда я мог бы использовать pip для установки нужного мне пакета:

pip install openpyxl

1

Перейдите к приглашению Anaconda и введите (если на вашем движке установлен python 3.x):

py -m pip install pymysql 

У меня была та же проблема, и это решило мою проблему. позже, после этого, вы можете импортировать pymysql в Power Shell или любое другое приглашение.


1

Обнаружена эта проблема при установке Python 3.8 из исходного кода на Ubuntu. Шаги, необходимые для его успешной установки вместе с Python 3.7 по умолчанию, приведены ниже:

sudo apt -y install libssl-dev zlib1g-dev build-essential

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/

./configure --enable-optimizations
make
sudo make altinstall

Инструкция по установке для zlib1g-dev и build-essential является избыточной, поскольку в настольной системе ubuntu они уже есть, но она была необходима для некоторых экземпляров Amazon EC2. Python 3.8.0 является текущей версией только сейчас, но должен быть заменен последней доступной.

Эти инструкции лучше всего подходят для поддержания python 3.7 по умолчанию для python3 и запуска python 3.8 в виртуальной среде.


1

Проблема связана с отсутствием пакета OpenSSL на вашем компьютере.

Если pip install openpyxlтакже дает ошибку.

Вы можете исправить это, установив OpenSSL (Win64 OpenSSL v1.1.1g) с сайта ниже:

slproweb.com/products/Win32OpenSSL.html

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


0

Я столкнулся с этой проблемой! Я случайно установил 32-битную версию Miniconda3. Убедитесь, что вы выбрали 64-битную версию!


0

Это сработало для меня:

yum install python36-pyOpenSSL 

Версия Python и менеджер пакетов могут отличаться.


0

Я попытался:

python -m pip install --upgrade pip

И после этого у меня работает нормально в Windows 10.


0

Исправлено это без необходимости изменять что-либо, связанное с TSL / SSL.

Я пытался увидеть, происходит ли то же самое pip, и увидел, что это pipбыло сломано. Немного покопался и понял, что это, вероятно, вызвано удалением Homebrew python@21 февраля 2020 года.

Запуск brew uninstall python@2для удаления python2, установленного Homebrew.

Уничтожил виртуальный env, созданный с помощью python3и создал новый.
pip3установка снова работает нормально.


3
Для меня переход на более старую версию opensslсработал: brew switch openssl 1.0.2t я на Mac OS Catalina 10.15.3. Надеюсь, поможет.
viraj.kulkarni

0

В моем случае я переустановил pyhone. Это решило проблему.

brew reinstall python

-1

Это проблема с настройкой ssl по умолчанию. Вам нужно скачать Python3 и добавить путь к вашей системе. Если вы используете Pycharm, установите интерпретатор на ваш путь python3. Тогда вы можете нормально использовать pip3 без ошибок.


-1

Возможно, проблема связана с установленной версией пакета openssl. Это было так для меня, и я исправил эту проблему, просто обновив ее. Я на Mac OS, используя Brew:

brew upgrade openssl

Если вы установили python с brew, это должно исправить проблему, так как python зависит от openssl


-1

Вы бы попробовали от Anaconda Prompt.

Вы увидите (базовый), теперь обновите пункт. Пример:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

Это займет больше времени, но также установит или обновит библиотеки SSL, которые Anaconda использует внутри компании. Продолжай идти сюда


Этот ответ предполагает использование conda в Windows, а не vanilla python в Linux, как указано в OP
hrbdg
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.