pip налаштовано з місцями, які вимагають TLS / SSL, однак модуль ssl в Python недоступний


213

Я використовую Python3.6, коли я намагаюся встановити "модулі" за допомогою pip3, я стикаюсь із зазначеною нижче проблемою "pip налаштований на місця, які вимагають TLS / SSL, однак модуль ssl в Python недоступний"


1
операційна система?
ZiTAL


1
Операційна система - oracle linux 7.x
Santosh Kumar G

1
Ви встановили pip від менеджера пакунків? Якщо ви встановили компіляції першої установки libssl-devабо установки SSL з піп pip install ssl stackoverflow.com/questions/41098252 / ...
ZiTAL

37
@ZiTAL pipне працює, тому що sslви просите встановити ssl, з pip :)
Ramazan Polat

Відповіді:


190

Для 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, поверніться до нього та повторіть спробу, він повинен працювати.
користувач3568896

Що ви означаєте йо у під шляхами навколишнього середовища? ти маєш на увазі змінну PATH environemnt? плюс у мене немає цих папок на моєму D-диску, вони повинні бути створені, коли я встановлюю Anaconda?
Аміт Раз

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

1
Це НЕ працює, якщо ви не використовуєте Anaconda. У мене виникла ця проблема з установками OSGeo4W64 та QGIS 3.10.2. Якщо додати те, що я збираю, - це правильні шляхи до змінної PATH, це не виправить проблему (наприклад:) C:\Program Files\QGIS 3.10\apps\Python37\Scripts.
CNIDog

184

ОС MAC

У мене була та сама проблема в Mac OS (Mojave), і я вирішив проблему, про яку говорилося в цьому посиланні - питання Openssl .

  1. Якщо у вас немає домашньої мови або не знаєте, що таке домашня мова:

    / 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/isissue/635
Vaulstein

1
@Vaulstein Тепер, коли ви це згадуєте. Я думаю, що я встановив деякі пакети, використовуючи варити, ще до того, як ця помилка. Це було gpg.
залежний

3
Після оновлення Mojaveдо Catalina, я натиснув це. Мені потрібно було лише brew update && brew upgradeдля того, щоб вона знову працювала. Дякую за пораду!
rustyMagnet

35

Для користувачів 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, я відредагував відповідь, щоб уточнити крок. Якщо це все-таки не допомагає, уточнюйте свою проблему
Рафаель B

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.
Макс

Що це за бібліотеки? Чому вони потрібні?
Мохіт Мотвані

Виконання безпечного з'єднання через Інтернет вимагає цього - наприклад , при запуску «піп встановити»
limboy


20

Для центів 7:

Встановити openssl:

sudo yum install openssl-devel

тепер каталог goto python було нам витягнуто дьогтем python,

бігайте нижче команд

sudo ./configure
sudo make
sudo make install

Це виправить проблему в центсі ...


10

Для Windows 10, Windows 7 Якщо установка pip не працює на підказці CMD, запустіть її за допомогою підказки Anaconda - вона працює.

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


6
Я знаю правильну відповідь, якщо ви хочете використовувати pip у звичайному cmd, а не в підказці Anaconda, вам потрібно додати 3 контури середовища: як: D: \ Anaconda3; D: \ Anaconda3 \ Сценарії; D: \ Anaconda3 \ Бібліотека \ bin тепер лише сценарії!
无名 小路

7

Якщо ваш python pyenvвстановлений, де pyenv встановлений з домашньою мовою на 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



4

Працювали для мене.

apt-get install libssl-dev

Використовуйте це, щоб увімкнути ssl для pip. Повідомте мене, якщо хтось стикається з проблемами.


4

Подібно до вищезазначеного рішення перевстановіть версію python за допомогою pyenv.

Якось я модернізував свій, opensslякий зламав pytv-версію python.

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

Перший рядок говорить про те, що він покладається на домашню програму openssl.


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 піднімає перше оточення python, яке він бачить під час встановлення, у нижній лівій частині екрана вказується, яка env використовується. Клацання на цій області дозволяє встановити середовище. Тож навіть якщо ви запустили інсталяцію pip для середовища, код VS може переглядати інший.

Найкращим підходом було переконатися, що для коду VS вибрано правильне середовище python, і те саме середовище знаходиться в системі 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. Якщо ви використовуєте термінал або оболонку PS, тоді закрийте і повторно відкрийте та перевірте шлях, щоб переконатися, що він включений.


3

Я використовую Windows 10 і встановив Miniconda 3 з Python 3.7.

Я вирішив цю помилку, дотримуючись цього https://github.com/conda/conda/isissue/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

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

Встановіть анаконду, використовуючи командний рядок:

choco install anaconda3

Встановити змінні середовища:

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

а потім запустіть команду, яка не вдалася. У моєму випадку це було:

pip install conan

Anaconda використовує окрему установку python, а pip також є специфічним для анаконди.


1

Як сказав Токчі, він також працює для Windows 7.

"Перейдіть мишкою до піктограми Windows (внизу ліворуч) і починайте вводити" Anaconda ". Там слід відобразити деякі відповідні записи. Виберіть" Підказка Anaconda ". Відкриється нове вікно команд під назвою" Анаконда Підказка "."

Потім піп працює.

Також імпортувати xgboost: https://www.youtube.com/watch?v=05djBSOs1FA


Шукаєте еквівалент linux ... але все одно, чому це не буде працювати і використовувати pip з командного рядка? це має сенс лише в тому випадку, якщо ви вже заздалегідь відремонтували пітон на анакондах із SSL заздалегідь.
matanster

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

1

Якщо хтось використовує ОС Arch Linux, я вирішив проблему TLS / SSL, виконавши це:

sudo pacman -S openssl

Тоді я міг би використати pip, щоб встановити потрібний мені пакет:

pip install openpyxl

1

Перейдіть до підказки Anaconda та введіть (якщо на вашому двигуні встановлений python 3.x):

py -m pip install pymysql 

у мене було те саме питання, і це вирішило мою проблему. пізніше після цього ви можете імпортувати pymysql в оболонку харчування або будь-яку іншу підказку.


1

Зустрічав цю проблему під час встановлення python 3.8 з джерела на ubuntu. Нижче описані кроки, необхідні для її успішного встановлення разом із пітоном 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-basic є зайвою, оскільки робочий стіл 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 upgrade openssl

Якщо ви встановили python з brew, це повинно безпосередньо вирішити проблему, оскільки python залежить від openssl


-1

Ви б спробували з підказки Anaconda.

Ви побачите (базу), тепер оновіть pip. Приклад:

(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, а не ванільного пітона в Linux, як вказано в ОП
hrbdg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.