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

PythonPip

Python Problem Overview


I am using Python 3.6. When I try to install "modules" using pip3, I face this issue:

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

Python Solutions


Solution 1 - Python

For Windows 10 if you want use pip in normal cmd, not only in Anaconda prompt. you need add 3 environment paths. like the followings:

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

most people only add D:\Anaconda3\Scripts

Solution 2 - Python

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

Solution 3 - Python

For Debian users, the following may be of use:

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

Then cd to the folder with the Python 3.X library source code and run:

./configure
make
make install

Solution 4 - Python

I'm using Windows 10 and installed Miniconda 3 with Python 3.7.

I solved this error by following this https://github.com/conda/conda/issues/8273

Specifically, I copied the following files from C:\Users\MyUser\Miniconda3\Library\bin to 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

Solution 5 - Python

For centos 7:

Install openssl:

sudo yum install openssl-devel

now goto python directory were we extracted the python tar,

run below commands

sudo ./configure
sudo make
sudo make install

This will fix the problem in centos...

Solution 6 - Python

For future Oracle Linux users trying to solve this, below is what worked for me. First install missing libs:

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

Then cd to your Python3.X library and run:

make
make install 

Solution 7 - Python

macOS, pyenv

In case of your python being an pyenv installed one, where pyenv is installed with homebrew on macOS, there might me a newer version available which fixes this:

$ brew update && brew upgrade pyenv

Then reinstalling the python version:

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

Note, it is a bit dirty to overwrite the existing python install like that, but in my case it did work out. Probably cleaner to delete it and then recreate it properly.

Solution 8 - Python

For Windows 10,windows 7 If pip install is not working on CMD prompt, run it using Anaconda prompt - it works.

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

Solution 9 - Python

Worked for me.

sudo apt-get install libssl-dev

Use this to enable ssl for pip. Let me know if someone encounters issues.

Solution 10 - Python

Similar to the above solution reinstall the python version with pyenv.

Somehow, I upgraded my openssl which broke the pyenv version python.

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

The first line says it relies on the homebrew openssl.

Solution 11 - Python

In my case, I reinstalled Python. It solved the problem.

brew reinstall python

Solution 12 - Python

For OpenSUSE in the same manner, but a few changes of listed above packages:

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

Then cd to Python sources dir and

make
make install

or

make
make altinstall

And perhaps

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

should be executed for OpenSUSE users. See https://stackoverflow.com/questions/51201459/python-3-7-install-not-working-on-opensuse-leap-42-3

Solution 13 - Python

Encountered this issue while installing python 3.8 from source on ubuntu. The steps needed to install it successfully alongside the default python 3.7 are summarised below :

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

The install instruction for zlib1g-dev and build-essential is redundant, as ubuntu desktop already has these, but was necessary for some of Amazon's EC2 instances. python 3.8.0 is the current release just now, but should be replaced with the latest available.

These instructions are best for keeping python 3.7 as the default for python3, and running python 3.8 in a virtual environment.

Solution 14 - Python

Just try installing through Anaconda prompt

Solution 15 - 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.

Solution 16 - Python

The problem probably comes from your installed openssl package version. That was the case for me and I fixed this issue just upgrading it. I'm on Mac OS, using brew :

brew upgrade openssl

If you installed python with brew, this should directly fix the issue with it, as python is dependent on openssl

Solution 17 - Python

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.

Solution 18 - Python

As Tokci said, it also works for Windows 7.

"Go with the mouse to the Windows Icon (lower left) and start typing "Anaconda". There should show up some matching entries. Select "Anaconda Prompt". A new command window, named "Anaconda Prompt" will open."

Then pip works.

The following also helped to import xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

Solution 19 - Python

Go to Anaconda prompt and type (if you have python 3.x installed on your engine) :

py -m pip install pymysql 

i was having the same issue and this solved my problem. later after doing this you can import pymysql in power shell or any other prompt.

Solution 20 - Python

If someone is using Arch Linux OS, I solved the TLS/SSL problem by running this:

sudo pacman -S openssl

Then I could use pip to install the package I needed:

pip install openpyxl

Solution 21 - Python

The issue is due to OpenSSL package is missing on your PC.

If pip install openpyxl also gives error.

you can fix this by installing OpenSSL(Win64 OpenSSL v1.1.1g) from below site :

slproweb.com/products/Win32OpenSSL.html

Restart the IDE you are using, for changes to be in effect.

Solution 22 - Python

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

Solution 23 - Python

Worked for me.

pkg install openssl

Use this to enable ssl.

Solution 24 - Python

Currently there is same issue in Anaconda prompt (Anaconda3) on Windows 10. Here is workaround: https://github.com/ContinuumIO/anaconda-issues/issues/10576

Solution 25 - Python

Fixed this without having to change anything related to TSL/SSL.

I was trying to see if the same thing was happening to pip, and saw that pip was broken. Did some digging and realized it's probably caused by Homebrew deleted python@2 on February 1st, 2020.

Running brew uninstall python@2 to delete python2 installed by Homebrew.

Destroyed the virtual env created using python3 and created a new one.
pip3 installing works fine again.

Solution 26 - Python

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.

Solution 27 - Python

I got into this problem using Ubuntu, pyenv and Python 3.8.1 managed by pyenv. There was actually no way to get pip to work correctly, since every time I tried to install anything, including pip itself, the same error showed up. Final solution was to install, via pyenv, a newer version, in this case 3.8.6. Apparently, from 3.8.4 Python is prepared to run SSL/TLS out of the box, so everything worked fine.

Solution 28 - Python

I simply solved the problem with following command:

brew upgrade [email protected]

SSL is included by default on this version!

Solution 29 - Python

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:

Solution 30 - Python

I was getting the same error:

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pb-tool/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pb-tool/
ERROR: Operation cancelled by user
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

In Anaconda I did it with this command:

conda install anaconda-navigator

It was mentioned in this article : pip is configured with locations that require TLS/SSL however the ssl module in Python is not available

Solution 31 - Python

I ran into this problem! I accidentally installed the 32-bit version of Miniconda3. Make sure you choose the 64 bit version!

Solution 32 - Python

This worked for me:

yum install python36-pyOpenSSL 

python version and package manager might differ.

Solution 33 - Python

You’d try from Anaconda Prompt.

You will see (base), now upgrade pip. Example:

(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

This takes a longer time, but will also install or upgrade SSL libraries that Anaconda uses internally. Keep Going here

Solution 34 - Python

You could try brew link and it will show you the proper instruction:

$ 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/[email protected]/bin:$PATH"' >> ~/.zshrc

For compilers to find [email protected] 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 [email protected] you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

Solution 35 - Python

I had the same issue and it was because I changed the folder of the environment. I just removed the env and reinstalled everything.

Solution 36 - Python

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.

Solution 37 - Python

For Miniconda3 under Windows 10 with python=3.7.5 I tried all above suggestions; nothing worked. I had to downgrade to python=3.7.0 which solved the issue

conda install python=3.7.0

Obviously this is quite messy. The answers suggest that an upgrade to 3.8.5 might also work but this had too many side effects in my env.

Solution 38 - Python

Install openssl first.

If you are facing this issue in conda environment, you can install openssl using conda install -c anaconda openssl. It enables ssl for you!

Solution 39 - Python

I tried:

python -m pip install --upgrade pip

And After that, it works fine for me in Windows 10.

Solution 40 - Python

This is the problem with your default ssl setting. You gotta download the Python3 and add the path to your system. If you use Pycharm, set the interpreter to your python3 path. Then you can normally use the pip3 without error.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSantosh Kumar GView Question on Stackoverflow
Solution 1 - Python无名小路View Answer on Stackoverflow
Solution 2 - PythonVaulsteinView Answer on Stackoverflow
Solution 3 - PythonRafael BeirigoView Answer on Stackoverflow
Solution 4 - PythondatchungView Answer on Stackoverflow
Solution 5 - PythonPDHideView Answer on Stackoverflow
Solution 6 - PythonlimboyView Answer on Stackoverflow
Solution 7 - PythonluckydonaldView Answer on Stackoverflow
Solution 8 - PythonTokciView Answer on Stackoverflow
Solution 9 - Pythonnaman1994View Answer on Stackoverflow
Solution 10 - PythonIzanaView Answer on Stackoverflow
Solution 11 - Pythonuser2446776View Answer on Stackoverflow
Solution 12 - PythonEvgenyView Answer on Stackoverflow
Solution 13 - PythondmdipView Answer on Stackoverflow
Solution 14 - PythonNishant WattamwarView Answer on Stackoverflow
Solution 15 - PythonFastGTRView Answer on Stackoverflow
Solution 16 - PythonclaudodView Answer on Stackoverflow
Solution 17 - PythonTarmoPikaroView Answer on Stackoverflow
Solution 18 - PythonAyan OmarovView Answer on Stackoverflow
Solution 19 - PythonJay ChhatralaView Answer on Stackoverflow
Solution 20 - PythonAnny GutierrezView Answer on Stackoverflow
Solution 21 - Pythonyetis200View Answer on Stackoverflow
Solution 22 - PythonraakshasanView Answer on Stackoverflow
Solution 23 - PythonmadxView Answer on Stackoverflow
Solution 24 - Pythonmarek_laniView Answer on Stackoverflow
Solution 25 - PythonGary Bao 鲍昱彤View Answer on Stackoverflow
Solution 26 - PythonQiulangView Answer on Stackoverflow
Solution 27 - PythonjjmereloView Answer on Stackoverflow
Solution 28 - PythonYerkebulan DuisebayView Answer on Stackoverflow
Solution 29 - PythonJovial Joe JayarsonView Answer on Stackoverflow
Solution 30 - PythonTarasView Answer on Stackoverflow
Solution 31 - PythonMikeView Answer on Stackoverflow
Solution 32 - PythonAndryshaView Answer on Stackoverflow
Solution 33 - PythonGionthelawaView Answer on Stackoverflow
Solution 34 - PythonXiao HanyuView Answer on Stackoverflow
Solution 35 - PythonbieboebapView Answer on Stackoverflow
Solution 36 - Pythonobject ObjectView Answer on Stackoverflow
Solution 37 - PythonOliver ZendelView Answer on Stackoverflow
Solution 38 - PythonManojk07View Answer on Stackoverflow
Solution 39 - PythonRaj KumarView Answer on Stackoverflow
Solution 40 - PythonNewtView Answer on Stackoverflow