Я использую Python 3.6. Когда я пытаюсь установить «модули» с помощью pip3, я сталкиваюсь с такой проблемой:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available

Santosh Kumar G

Ответов: 37

Ответы (37)

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

py -m pip install pymysql 

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

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

В настоящее время такая же проблема возникает в командной строке Anaconda (Anaconda3) в Windows 10. Вот временное решение: https://github.com/ContinuumIO/anaconda-issues/issues/10576

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

Я столкнулся с этой проблемой, используя Ubuntu, pyenv и Python 3.8.1 под управлением pyenv. На самом деле не было никакого способа заставить pip работать правильно, поскольку каждый раз, когда я пытался установить что-либо, включая сам pip, появлялась одна и та же ошибка. Окончательным решением было установить через pyenv более новую версию, в данном случае 3.8.6. Судя по всему, начиная с версии 3.8.4 Python готов запускать SSL / TLS из коробки, поэтому все работало нормально.

Вы можете попробовать brew link, и он покажет вам правильную инструкцию:

$ brew link openssl --force
Warning: Refusing to link macOS provided/shadowed software: openssl@1.1
If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

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

brew reinstall python

Для будущих пользователей 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 

Проблема, вероятно, связана с установленной вами версией пакета openssl. Так было со мной, и я решил эту проблему, просто обновив его. Я использую Mac OS, использую brew:

brew upgrade openssl

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

Для Windows 10, Windows 7 Если установка pip не работает в командной строке CMD, запустите ее с помощью командной строки Anaconda - она ​​работает.

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

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

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

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

./configure
make
make install

Для Miniconda3 под Windows 10 с python = 3.7.5 Я пробовал все вышеперечисленные предложения; ничего не работало. Мне пришлось перейти на python = 3.7.0, что решило проблему

conda install python=3.7.0

Очевидно, это довольно запутанно. Ответы предполагают, что обновление до 3.8.5 также может работать, но у меня было слишком много побочных эффектов в моем окружении.

Попробуйте воспользоваться подсказкой Anaconda.

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

(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 использует для внутренних целей.Продолжайте движение сюда

Обнаружил эту проблему при установке 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 в виртуальной среде.

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

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

Тогда pip работает.

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

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

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

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

slproweb.com/products/Win32OpenSSL.html

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

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

$ brew update && brew upgrade pyenv

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

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 уже существует
продолжить установку? (да / нет)

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

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

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

Затем cd в каталог исходных текстов Python и

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

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

sudo apt-get install libssl-dev

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

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

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

sudo pacman -S openssl

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

pip install openpyxl

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

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

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

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

yum install python36-pyOpenSSL 

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

Для centos 7:

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

sudo yum install openssl-devel

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

выполнить следующие команды

sudo ./configure
sudo make
sudo make install

Это решит проблему в centos ...

MAC OS

I had the same problem on Mac OS(Mojave) and solved the problem as mentioned on this link - Openssl issue.

  1. If you do not have Homebrew or don't know what is Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Or if you already have Homebrew installed:
brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Update: Keep in mind, that I had to use --ignore-dependencies flag, because other packages installed that depend on OpenSSL.

Additional if the problem is caused after using pyenv, you can fix it by using:

brew reinstall python

I ran into this issue with Visual Studio Code installing pylint from the VS Code prompt. I was able to overcome the issue by opening the Anaconda installation directory and running

pip install pylint

Then VS Code was happy, but that did not fix the issue as running

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

pretty much gave the same error so it seems that VS Code is unable to access the python modules.

Note that VS Code picks up the first python env it see when installed, the bottom left of the screen indicates which env is being used. Clicking on that area allows to set the environment. So even if you ran the pip install for an environment VS Code could be looking at a different one.

Best approach was to make sure that VS code had the correct python environment selected and that same environment is in the system PATH (under System Properties --> Advanced --> Environmental Variables)

Under the Path Variable, Edit and browse to the specific Anaconda directory that you want VSCode to use and add to PATH, I needed to Add the following:

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

Your Anaconda installation directory may differ. One note is that Windows does not have the PATH variable take effect until you restart the terminal. In this case close and re-op VS code. If using a Terminal or PS Shell then close and reopen and check Path to make sure it is included.

Пробовал:

python -m pip install --upgrade pip

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

Исправлено без изменения чего-либо, связанного с TSL / SSL.

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

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

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

Newest Python 3.8.4 or higher should able to support https protocol out of box. If you still have old python installation on your pc - either download & install python3 manually, or using Chocolatey:

If you don't have Chocolatey, install it - from here: https://chocolatey.org/docs/installation

You can just copy paste one command line liner and execute it from command prompt with elevated priviledges.

choco install python3

if you don't have python3 installed, or you you have it installed - then:

choco upgrade python3

Notice also that you can use also anaconda distribution, as it has built-in python with https support, but this rather ancient instructions, no need to follow them anymore.

Install anaconda, using command line:

choco install anaconda3

Set environment variables:

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

and then run command which failed. In my case it was:

pip install conan

Anaconda uses separate python installation, and pip is also anaconda specific.

Я использую 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

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

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

pyenv установить 3.6.8
python-build: используйте openssl@1.1 из homebrew
python-build: использовать строку чтения из homebrew
...

В первой строке говорится, что он полагается на homebrew openssl.

I am on macOS and I had used brew but what Vaulstein mentioned in his answer didn't cover my case.

I run the following commands to make sure my current python was not installed by brew

brew list | grep python           
python
python@2

brew info python
python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
... 

So I download the latest 3.8.5 from https://www.python.org/ and when installing it I saw following information

Certificate verification and OpenSSL

This package includes its own private copy of OpenSSL 1.1.1. The trust certificates in system and user keychains managed by the Keychain Access application and the security command line utility are not used as defaults by the Python ssl module

After installed 3.8.5 it fixed the problem.

In Windows 10 SQL Server 19 the solution is known.

Copy the following files:

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

from the folder

C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\Library\bin

to the folder

C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\DLLs

Then open a new DOS command shell prompt.

From https://docs.microsoft.com/en-us/sql/machine-learning/troubleshooting/known-issues-for-sql-server-machine-learning-services?view=sql-server-ver15#7-unable-to-install-python-packages-using-pip-after-installing-sql-server-2019-on-windows

In my case I was running into issues with my $PATH on Linux. This can also happen on MacOS.

Check to see if /usr/bin/pip3 install package_name_goes_here works for you. If so then run which pip3 this will tell you which is the first directory that pip3 is installed in.

If it is something like /usr/local/bin/pip3 which is different from /usr/bin/pip3 then you may need to adjust your $PATH.

Run echo $PATH and copy the result.

The PATH is simply a colon separated list of directories that contain directories. Bash will always return the first instance of the program that you are attempting to execute. Move all the system directories upfront. Here is a list of some of the system directories:

/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

If that fails then verify you have openssl installed by running openssl version -a if not then install openssl.

У меня была такая же проблема, потому что я изменил папку окружения. Я просто удалил env и все переустановил.

Я просто решил проблему следующей командой:

улучшение заваривания python@3.9

В этой версии по умолчанию включен SSL!

If you've installed anaconda via scoop, and encounter this error while using pip from within a conda environment you can resolve it by...

  1. Adding these to your path
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Scripts
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library\bin
  1. Installing openssl via scoop
scoop install openssl
  1. And copying the following DLLs from ..\anaconda3\Library\bin to ..\anaconda3\DLLs

References:

2022 WebDevInsider