Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Could not find a version that satisfies the requirement..." #177

Closed
xobs opened this issue Jul 23, 2018 · 7 comments
Closed

"Could not find a version that satisfies the requirement..." #177

xobs opened this issue Jul 23, 2018 · 7 comments

Comments

@xobs
Copy link

xobs commented Jul 23, 2018

I'm trying to install packages from pip, but some versions are not available. For example, aiohttp is listed as being on version 3.3.2, but running pip install aiohttp installs version 2.3.10.

This is on Ubuntu 16.04 on WSL in a Python 3.5 virtualenv:

(lin) xobs@Cuboid:/proj$ python -V
Python 3.5.2
(lin) xobs@Cuboid:/proj$ pip -V
pip 18.0 from /proj/lin/lib/python3.5/site-packages/pip (python 3.5)
(lin) xobs@Cuboid:proj$ pip install aiohttp==3.3.2
Collecting aiohttp==3.3.2
  Could not find a version that satisfies the requirement aiohttp==3.3.2 (from versions: 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.15.0, 0.15.1, 0.15.2, 0.15.3, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.17.0, 0.17.1, 0.17.2, 0.17.3, 0.17.4, 0.18.0, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.19.0, 0.20.0, 0.20.1, 0.20.2, 0.21.0, 0.21.1, 0.21.2, 0.21.4, 0.21.5, 0.21.6, 0.22.0a0, 0.22.0b0, 0.22.0b1, 0.22.0b2, 0.22.0b3, 0.22.0b4, 0.22.0b5, 0.22.0b6, 0.22.0, 0.22.1, 0.22.2, 0.22.3, 0.22.4, 0.22.5, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.2.0, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 2.0.0rc1, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.6.post1, 2.0.7, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.3.0a1, 2.3.0a2, 2.3.0a4, 2.3.0, 2.3.1a1, 2.3.1, 2.3.2b2, 2.3.2b3, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7, 2.3.8, 2.3.9, 2.3.10, 3.0.0b0)
No matching distribution found for aiohttp==3.3.2
(lin) xobs@Cuboid:/proj$
@pganssle
Copy link
Member

pganssle commented Jul 23, 2018

According to the linked page, version 3.3.2 of aiohttp specifically requires Python version >= 3.5.3. I assume that has been declared since > 2.3.10, I imagine pip is respecting the Requires-Python metadata.

@xobs
Copy link
Author

xobs commented Jul 23, 2018

Okay, so the pip error message is incorrect? It is able to find aiohttp==3.3.2 it's just not compatible? Should the error message actually read "Could not find a version that satisfies the requirements aiohttp==3.3.2 AND python_version==3.5.2"?

@pganssle
Copy link
Member

I always read that error message with the implicit context of "couldn't find a version available (for your platform and python version)." I think it might be a lot to list all the decisions that go into choosing what versions are available. I believe the logic can be even more complicated than just platform/version/python version when you take into account options specified and things like conflicting requirements in transitive dependencies. It's also not clear to me that the part of pip that raises this error message even has all the context required to list the reasons.

Might be worth considering tweaking the error message to make it clear that this is a filtered list, though. Possibly the filtering can be exposed in an "extra verbose" mode if this is a significant problem people are having.

@xobs
Copy link
Author

xobs commented Jul 23, 2018

That makes sense -- there's a lot more implicit state there than I realized. Thanks for the feedback, and I hope this issue proves useful to future users!

@xobs xobs closed this as completed Jul 23, 2018
@pradyunsg
Copy link
Member

It's also not clear to me that the part of pip that raises this error message even has all the context required to list the reasons.

This is in fact the case.

There's some work that needs to be done to make it possible for pip to print a better error messages here. More generally, I think the "No matching distribution" message isn't very helpful in most cases for users and improving this is something worth looking into (pypa/pip#5003 is exactly this issue, pypa/pip#3642 is another example).

Alas, I haven't found the time to investigate beyond looking into this to realize that it's harder than a single evening of work. :(

@durgeshkumargupta
Copy link

Please build and install the PortAudio Python bindings first.
How can solve problem if type in powershell window pip install PortAudio then error show
ERROR: Could not find a version that satisfies the requirement PortAudio (from versions: none)
ERROR: No matching distribution found for PortAudio
But i am install pyaudio

@Mansouri147
Copy link

Mansouri147 commented Mar 17, 2020

For i think it was a misleading message 'cause it shows in most packages that i'm trying to install so my pip is not usable so far or damaged note that it was working pretty well , so what worked for me is downgrading it by "pip uninstall pip" and IT WORKS! better than before even, note that i haven't done any upgrade or changing it's version before it get's damaged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants