-
Notifications
You must be signed in to change notification settings - Fork 3k
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
"No matching distribution" due to wheel tags not matching in pip 20.0 #7626
Comments
We are also having this error using version 20.0.1 with our in-house wheel
Using |
Same here with an in-house wheel. Doesn't work: Works: Seems that the platform tags are the problem here: tags 'any' are working, but this specify wheel has 'linux_x86_64'. Note that I have:
|
Same here. 19.3.1 works but 20.0.1 gives: Tags for my pc: [('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('cp36', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'win32'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')] Tags for file can be seen in filename. |
Could you print the differences between |
--- /tmp/old.txt 2020-01-21 17:22:10.221211433 +0300
+++ /tmp/new.txt 2020-01-21 17:22:30.725552363 +0300
@@ -1,4 +1,4 @@
-pip version: pip 19.3.1 from /tmp/venv/lib/python3.6/site-packages/pip (python 3.6)
+pip version: pip 20.0.1 from /tmp/venv/lib/python3.6/site-packages/pip (python 3.6)
sys.version: 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0]
sys.executable: /tmp/venv/bin/python3
@@ -8,7 +8,11 @@
sys.platform: linux
sys.implementation:
name: cpython
-Compatible tags: 42
+'cert' config value: global
+REQUESTS_CA_BUNDLE: None
+CURL_CA_BUNDLE: None
+pip._vendor.certifi.where(): /tmp/venv/lib/python3.6/site-packages/pip/_vendor/certifi/cacert.pem
+Compatible tags: 41
cp36-cp36m-manylinux2014_x86_64
cp36-cp36m-manylinux2010_x86_64
cp36-cp36m-manylinux1_x86_64
@@ -37,12 +41,11 @@
cp32-abi3-manylinux2010_x86_64
cp32-abi3-manylinux1_x86_64
cp32-abi3-linux_x86_64
- py3-none-manylinux2014_x86_64
- py3-none-manylinux2010_x86_64
- py3-none-manylinux1_x86_64
- py3-none-linux_x86_64
+ py36-none-manylinux2014_x86_64
+ py36-none-manylinux2010_x86_64
+ py36-none-manylinux1_x86_64
+ py36-none-linux_x86_64
cp36-none-any
- cp3-none-any
py36-none-any
py3-none-any
py35-none-any |
-pip version: pip 19.3.1 from c:\sdks\python37-32\lib\site-packages\pip (python 3.7)
+pip version: pip 20.0.1 from c:\sdks\python37-32\lib\site-packages\pip (python 3.7)
sys.version: 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 18 2019, 23:46:00) [MSC v.1916 32 bit (Intel)]
sys.executable: c:\sdks\python37-32\python.exe
sys.getdefaultencoding: utf-8
@@ -8,14 +8,21 @@ locale.getpreferredencoding: cp1252
sys.platform: win32
sys.implementation:
name: cpython
-Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
-Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
-Compatible tags: 14
+'cert' config value: global
+REQUESTS_CA_BUNDLE: None
+CURL_CA_BUNDLE: None
+pip._vendor.certifi.where(): c:\sdks\python37-32\lib\site-packages\pip\_vendor\certifi\cacert.pem
+Compatible tags: 19
cp37-cp37m-win32
+ cp37-abi3-win32
cp37-none-win32
- py3-none-win32
+ cp36-abi3-win32
+ cp35-abi3-win32
+ cp34-abi3-win32
+ cp33-abi3-win32
+ cp32-abi3-win32
+ py37-none-win32
cp37-none-any
- cp3-none-any
py37-none-any
py3-none-any
py36-none-any |
Similar on Windows - the tag section of the output: --- ".\\pip19.txt" 2020-01-21 14:30:16 +0000
+++ ".\\pip20.txt" 2020-01-21 14:26:54 +0000
@@ -1,9 +1,15 @@
-Compatible tags: 15
+Compatible tags: 21
cp38-cp38-win_amd64
+ cp38-abi3-win_amd64
cp38-none-win_amd64
- py3-none-win_amd64
+ cp37-abi3-win_amd64
+ cp36-abi3-win_amd64
+ cp35-abi3-win_amd64
+ cp34-abi3-win_amd64
+ cp33-abi3-win_amd64
+ cp32-abi3-win_amd64
+ py38-none-win_amd64
cp38-none-any
- cp3-none-any
py38-none-any
py3-none-any
py37-none-any Looks like The specs don't say much about what custom tags like this are valid, so this is arguably in the area of "undefined behaviour". While that doesn't help the people affected by this, it does suggest that being more specific in the standards would be good. BTW, I'm not entirely sure what |
I briefly checked the Linux package, and it appears that none of the native libraries there refer to Python symbols. It looks like MXNet uses |
Have the same issue installing icc-rt (from intel-numpy) (2020.0.133) using pip==20.0.1 |
OK. Why does it need a "manylinux" tag in that case, if it's using ctypes for everything? Actually, don't spend any time on that question, I'm not a Linux expert so I probably wouldn't follow the answer anyway. At a minimum, this sounds like it should be raised as an issue against the |
I will answer anyway: the wheel has native Linux libraries in it, so the |
In #7620 (comment) @tomasaschan reported what I think is this same issue for |
@IRDonch Thanks. I did actually follow that explanation 🙂 Makes sense. |
@jamadden Agreed, that looks like the same issue. |
@jamadden What can I do locally to help you determine whether this is the same? |
@tomasaschan Can you paste here the output of |
λ diff pip19.log pip20.log
1c1
- pip version: pip 19.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
---
+ pip version: pip 20.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
11c11,15
- Compatible tags: 42
---
+ 'cert' config value: global
+ REQUESTS_CA_BUNDLE: None
+ CURL_CA_BUNDLE: None
+ pip._vendor.certifi.where(): /usr/local/lib/python3.6/dist-packages/pip/_vendor/certifi/cacert.pem
+ Compatible tags: 41
40,43c44,47
- py3-none-manylinux2014_x86_64
- py3-none-manylinux2010_x86_64
- py3-none-manylinux1_x86_64
- py3-none-linux_x86_64
---
+ py36-none-manylinux2014_x86_64
+ py36-none-manylinux2010_x86_64
+ py36-none-manylinux1_x86_64
+ py36-none-linux_x86_64
45d48
- cp3-none-any
|
pip/_vendor/packaging/tags.py
332c332
- platforms = _platform_tags
---
+ platforms = _platform_tags()
334c334
- for platform_ in platforms():
---
+ for platform_ in platforms: seems to solve the problem |
Here's a Dockerfile that reproduces our error message:
|
@jeroendecroos Good catch - that looks like it may be a straight bug in |
Okie, so the fix is now in master. I'll make the release in a bit -- please follow #7531. |
Released 20.0.2 containing the fix for this. If you're still seeing something similar, please take a look at #7629 (if you're on PyPy) or file a new issue. :) |
This now works again with pip 20.0.2 released a few minutes ago. Thanks all for the timely patch! |
Thanks, we're up and running again! |
@pradyunsg I can confirm that my Docker repro above is fixed in 20.0.2. Great work on this, huge thanks (from all of us)! ❤️ |
There's a regression
|
Thanks! That's an unrelated problem caused by an unsupported use of pip, and not a bug/regression introduced in pip 20.0.2. I see that @pfmoore has responded in more detail there, so let's have further discussion in that issue. |
Ran into this late on Friday and arrived at work this morning to find it already fixed and released -- thank you to everyone involved in making the fix happen so quickly! :D |
Hey! This fix (20.0.2) actually didnt fix my problem. Anyone has a clue about what is causing this problem? pip install artifacts-keyring |
Please file a new issue. |
We added the pining because pip `20.0.1` introduced an issue with wheels tag matching pip `20.0.2` has since been released and fixes the issue: pypa/pip#7626
Environment
Description
Pip can seemingly no longer install any version of
mxnet
newer than 0.9.5.Expected behavior
It should be able to. :-) This worked before pip 20.
How to Reproduce
Try to install
mxnet==1.3.1
in a virtual environment.Output
Running
pip install
with--verbose
produces a huge log, in which this seems relevant:The text was updated successfully, but these errors were encountered: