'pip install' fails for every package ("Could not find a version that satisfies the requirement") [duplicate]
Asked Answered
E

2

131

pip install <package name> is failing for every package for me. This is what I get:

Could not find a version that satisfies the requirement <package-name
(from versions: )
No matching distribution found for <package-name>

I saw similar questions on Stack Overflow, but they don't seem to be fully related to this one.

Also, this post suggests that this might happen if PyPI is down or my IP address is blacklisted. It seems both are not true for my case.

pip shows up-to-date on running pip install --upgrade pip.

Espinosa answered 10/4, 2018 at 7:43 Comment(7)
can you provide an example, of how you do pip install <package name> with an actual package name, or just post your requirements.txt? thanksInvent
I have tried many. Even pip install django doesnt work. It always worked earlier.Espinosa
have you tried updating pip version? which python and python-pip versions are you using? are you sure your machine is connected to the internet?Invent
What's the output produced when you use pip install -vvv <package name>?Cytoplasm
@N. Ivanaov yes the machine is connected (since I am able to create this post). Yes I tried upgrading pip and its already up-to-date.Espinosa
Would really appreciate downvotes supported with comments please. This is a real problem. I am a Django developer and have been using pip for quite sometime!Espinosa
@MartijnPieters: Thanks, that helps in moving forward atleast. Looks like something changed on the security protocol required by PyPi. This is what I get: Could not fetch URL https://pypi.python.org/simple/django/: 403 Client Error: TLSv1.2+ is required for url: https://pypi.python.org/simple/django/ - skipping Could not find a version that satisfies the requirement django (from versions: )Espinosa
E
186

Upgrade pip as follows:

curl https://bootstrap.pypa.io/get-pip.py | python

Note: You may need to use sudo python above if not in a virtual environment.

What's happening:

Python.org sites are stopping support for TLS versions 1.0 and 1.1. This means that Mac OS X version 10.12 (Sierra) or older will not be able to use pip unless they upgrade pip as above.

(Note that upgrading pip via pip install --upgrade pip will also not upgrade it correctly. It is a chicken-and-egg issue)

This thread explains it (thanks to this Twitter post):

Mac users who use pip and PyPI:

If you are running macOS/OS X version 10.12 or older, then you ought to upgrade to the latest pip (9.0.3) to connect to the Python Package Index securely:

curl https://bootstrap.pypa.io/get-pip.py | python

and we recommend you do that by April 8th.

Pip 9.0.3 supports TLSv1.2 when running under system Python on macOS < 10.13. Official release notes: https://pip.pypa.io/en/stable/news/

Also, the Python status page:

Completed - The rolling brownouts are finished, and TLSv1.0 and TLSv1.1 have been disabled. Apr 11, 15:37 UTC

Update - The rolling brownouts have been upgraded to a blackout, TLSv1.0 and TLSv1.1 will be rejected with a HTTP 403 at all times. Apr 8, 15:49 UTC

Lastly, to avoid other install errors, make sure you also upgrade setuptools after doing the above:

pip install --upgrade setuptools
Espinosa answered 10/4, 2018 at 8:7 Comment(31)
Thank you, worked perfect for me on MacOS getting error installing any package: Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skippingSiclari
Worked on mac 10.11.6Rounce
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/setuptools-1.3.1-py2.7.egg' Consider using the --user option or check the permissions. .... Should I add the --user option?Noria
@Noria seems like a separate issue. Would you like to to start a separate post ?Espinosa
In case you face any permission issues, use : curl bootstrap.pypa.io/get-pip.py | sudo pythonWalworth
@AbhishekLodha : doesnt work for me. i am getting "Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip-7.1.2.dist-info/DESCRIPTION.rst'Carding
@AnujGupta you need to give permissions to the python folder. sudo chown -R $USER /Library/Python/2.7Walworth
@AbhishekLodha: I did this, yet I was getting this error. that's why i raised it hereCarding
This saved a lot of typing for me on my url box...Socrates
(using MacOS) In my case helped only: curl https://bootstrap.pypa.io/get-pip.py | sudo pythonGarnishee
not working anymore? Wondering how everyone can accept this answerMaurinemaurise
@OliverSchneider it still works. Do you see an error when you run it?Espinosa
@Anupam, thx, had to update Python to 3.7 tooMaurinemaurise
thank you very much ,it works for me in my macSeed
I'm on Linux and these instructions didn't helpEmotionalism
@CsabaToth what distribution of Linux are you on? Alternatively, you could use apt or yum or another command to install pip depending on your distributionEspinosa
@Espinosa Devuan ascii (It's a Debian which avoids systemd). The system python-pip is 9.0, but I upgraded it out of band several times and pip --version returns 18.Emotionalism
Ok - and what version of Python? python-pip is for Python 2 and python3-pip is for Python 3. This list maybe be helpfulEspinosa
Specifically I'm trying to install python-apns which is compatible both with Python 2.7 and Python 3. My source is Python 2.7 and I'm working in a Python virtual environment. I tried python2.7 -m pip install python-apns and python3 -m pip install python-apns both inside the virtualenv and outside and all 4 tries result the same (from versions: ) so something is brain dead. Do you think it can be Linux distribution related or rather some clashes of Python versions?Emotionalism
Nevermind... I realized I was using wring package nameEmotionalism
macOS Sierra 10.12.6: Only command which worked for me (given permissions on .../Caches/pip) was: $ sudo -H curl bootstrap.pypa.io/get-pip.py | sudo -H pythonWhiny
I am using windows and facing a similar issue, I am using python 3.6.8 and pip version 18.1Tucker
On Windows 10, I had the python 3.7.1 32bit installed and had manually upgraded the pip, using pip install --upgrade pip. This meant my pip was upgraded to version 19.1. I uninstalled Python (and pip), and reinstalled Python 3.7 using the amd64 executable installer. I've avoided upgrading pip, for now, and it's working fine. Hope this helps someone else.Dissentient
this worked for me curl bootstrap.pypa.io/get-pip.py | python as per the answer statesHoarsen
Using this had another problem with being unable to find pip, led me to this issue here: #16237990Hardden
If your problem still persist even though you have latest pip installed, probably try to upgrade these other packages too: pip install pyOpenSSL backports.ssl requestsLastminute
I got the following error "could not find a version that satisfies the requirement rsa>=3.1.4" when executing this command "pip install gspread oauth2client" and its been resolved after executing "pip install --upgrade setuptools"Hernadez
For me this downgraded me to pip 7.1.2 for some reason...Oversize
This nows points to python3 syntax script, so you might need to do this: curl https://bootstrap.pypa.io/get-pip.py | python3Justifiable
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.Coelacanth
curl https://bootstrap.pypa.io/get-pip.py | python still working out here in 2022 on Fedora 35Backstretch
B
12

Support for TLS 1.0 and 1.1 was dropped for PyPI. If your system does not use a more recent version, it could explain your error.

Could you try reinstalling pip system-wide, to update your system dependencies to a newer version of TLS?

This seems to be related to Unable to install Python libraries

See Dominique Barton's answer:

Apparently pip is trying to access PyPI via HTTPS (which is encrypted and fine), but with an old (insecure) SSL version. Your system seems to be out of date. It might help if you update your packages.

On Debian-based systems I'd try:

apt-get update && apt-get upgrade python-pip

On Red Hat Linux-based systems:

yum update python-pip # (or python2-pip, at least on Red Hat Linux 7)

On Mac:

sudo easy_install -U pip

You can also try to update openssl separately.

Burseraceous answered 10/4, 2018 at 8:2 Comment(10)
Thanks for the tip but sudo easy_install -U pip didnt work for me on Mac OSX 10.11.X. Searching for pip Reading https://pypi.python.org/simple/pip/ Couldn't find index page for 'pip' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading https://pypi.python.org/simple/ No local packages or download links found for pip error: Could not find suitable distribution for Requirement.parse('pip')Espinosa
I'm sorry, I'm not an OSX user, so I can't help you on that. Please have a look at @Anupam's answer for instructions on how to (re-)install pip on OSX.Burseraceous
yes, that worked for me. I am @Espinosa :)Espinosa
Lol :) Sorry for the confusion, I didn't see you answered your own question ;-)Burseraceous
What about Windows?Gravity
@Burseraceous , do you have any guidance for Windows users?Isopiestic
@mike_butak I guess that installing a newer version of python should do the job.Burseraceous
@Burseraceous it turned out to be simply my vpn. I had to turn it off.Isopiestic
@Gravity Windows using git bash, the above curl command works for me. Then $python -m pipenv --version (I was having trouble with pipenv.)Thiazole
I am on Mac with Python 3.10. The easy_install gives a lot of errors (this is just the start of a long list of errors)Tripodic

© 2022 - 2024 — McMap. All rights reserved.