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

217

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

Сантош Кумар Г
источник
1
Операционная система?
ZiTAL
1
если это os x: stackoverflow.com/questions/35280956/…
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
Vaulstein
источник
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 
limboy
источник
1
Этот ответ хорошо решил проблему на моем CentOS 7.
Макс
Что это за библиотеки? Зачем они нужны?
Мохит Мотвани
Для этого требуется безопасное соединение через Интернет - например, когда вы запускаете 'pip install'
limboy
@MohitMotwani - fuhgeddaboudit ... urbandictionary.com/define.php?term=fuhgeddaboudit
barrypicker
20

Для сентос 7:

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

sudo yum install openssl-devel

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

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

sudo ./configure
sudo make
sudo make install

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

PDHide
источник
10

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

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

Tokci
источник
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 таким образом, но в моем случае это сработало.

luckydonald
источник
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.

Izana
источник
4

Просто попробуйте установить через Anaconda

Нишант Ваттамвар
источник
4

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

apt-get install libssl-dev

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

naman1994
источник
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, чтобы убедиться, что он включен.

FastGTR
источник
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
datchung
источник
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.

TarmoPikaro
источник
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 в виртуальной среде.

dmdip
источник
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 и менеджер пакетов могут отличаться.

Andrysha
источник
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
user2446776
источник
-1

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

Тритон
источник
-1

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

brew upgrade openssl

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

claudod
источник
-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 использует внутри компании. Продолжай идти сюда

Gionthelawa
источник
Этот ответ предполагает использование conda в Windows, а не vanilla python в Linux, как указано в OP
hrbdg