Environnement
La description
Pip ne peut apparemment plus installer aucune version de mxnet
plus récente que 0.9.5.
Comportement prévisible
Il devrait pouvoir le faire. :-) Cela a fonctionné avant le pip 20.
Comment reproduire
Essayez d'installer mxnet==1.3.1
dans un environnement virtuel.
Production
$ virtualenv -ppython3 /tmp/venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /tmp/venv/bin/python3
Also creating executable in /tmp/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ /tmp/venv/bin/pip install mxnet==1.3.1
ERROR: Could not find a version that satisfies the requirement mxnet==1.3.1 (from versions: 0.9.5)
ERROR: No matching distribution found for mxnet==1.3.1
Lancer pip install
avec --verbose
produit un Ă©norme journal, dans lequel cela semble pertinent:
Skipping link: none of the wheel's tags match: py2-none-manylinux1_x86_64, py3-none-manylinux1_x86_64: https://files.pythonhosted.org/packages/f0/2e/b26eb7273aed1945f59993b3b306442eb41684f931b5380821c39cf50a31/mxnet-1.3.1-py2.py3-none-manylinux1_x86_64.whl#sha256=939575fddd45e8ba39177dd3d53ccce64dea312bc08f493392b1ecace9e1b117 (from https://pypi.org/simple/mxnet/)
Nous avons Ă©galement cette erreur en utilisant la version 20.0.1 avec notre roue interne
(venv) C:\depot\bitbucket\mytests\tests_pti>pip -vvv install C:\Users\otrejoso\Downloads\pti-2.0.510-py3-none-win_amd64.whl
Non-user install because user site-packages disabled
Created temporary directory: C:\Users\otrejoso\AppData\Local\Temp\pip-ephem-wheel-cache-wquw3si6
Created temporary directory: C:\Users\otrejoso\AppData\Local\Temp\pip-req-tracker-ik56de2r
Initialized build tracking at C:\Users\otrejoso\AppData\Local\Temp\pip-req-tracker-ik56de2r
Created build tracker: C:\Users\otrejoso\AppData\Local\Temp\pip-req-tracker-ik56de2r
Entered build tracker: C:\Users\otrejoso\AppData\Local\Temp\pip-req-tracker-ik56de2r
Created temporary directory: C:\Users\otrejoso\AppData\Local\Temp\pip-install-vb0u5yy4
Cleaning up...
Removed build tracker: 'C:\\Users\\otrejoso\\AppData\\Local\\Temp\\pip-req-tracker-ik56de2r'
ERROR: pti-2.0.510-py3-none-win_amd64.whl is not a supported wheel on this platform.
Exception information:
....
pip._internal.exceptions.InstallationError: pti-2.0.510-py3-none-win_amd64.whl is not a supported wheel on this platform.
L'utilisation de pip install pip==19.3.1
fonctionne bien.
MĂȘme chose ici avec une roue interne.
Ne fonctionne pas:
pip install -U pip==20.0.1; pip install <wheel>
ERREUR:
Travaux:
pip install -U pip==19.3.1; pip install <wheel>
Il semble que les balises de plate-forme sont le problÚme ici: les balises 'any' fonctionnent, mais cette roue de spécification a 'linux_x86_64'.
Notez que j'ai:
uname -a
Linux <propretiery> 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
python -c "import wheel.pep425tags as w; print(w.get_supported())"
[('cp27', 'cp27mu', 'linux_x86_64'), ('cp27', 'none', 'linux_x86_64'), ('cp27', 'none', 'any'), ('cp2', 'none', 'any'), ('cp26', 'none', 'any'), ('cp25', 'none', 'any'), ('cp24', 'none', 'any'), ('cp23', 'none', 'any'), ('cp22', 'none', 'any'), ('cp21', 'none', 'any'), ('cp20', 'none', 'any'), ('py2', 'none', 'linux_x86_64'), ('py27', 'none', 'any'), ('py2', 'none', 'any'), ('py26', 'none', 'any'), ('py25', 'none', 'any'), ('py24', 'none', 'any'), ('py23', 'none', 'any'), ('py22', 'none', 'any'), ('py21', 'none', 'any'), ('py20', 'none', 'any')]
Pareil ici.
19.3.1 fonctionne mais 20.0.1 donne:
pip._internal.exceptions.InstallationError: pyenchant-2.0.0-py2.py3.cp27.cp32.cp33.cp34.cp35.cp36.pp27.pp33.pp35-none-win32.whl n'est pas une roue prise en charge sur cette plate-forme.
Tags pour mon pc: [('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('cp37', 'none', 'any'), (' cp3 ',' aucun ',' n'importe lequel '), (' cp36 ',' aucun ',' n'importe quel '), (' cp35 ',' aucun ',' n'importe quel '), (' cp34 ',' aucun ',' any '), (' cp33 ',' none ',' any '), (' cp32 ',' none ',' any '), (' cp31 ',' none ',' any '), (' cp30 ' , 'none', 'any'), ('py3', 'none', 'win32'), ('py37', 'none', 'any'), ('py3', 'none', 'any' ), ('py36', 'aucun', 'n'importe lequel'), ('py35', 'aucun', 'n'importe quel'), ('py34', 'aucun', 'n'importe quel'), ('py33', ' aucun ',' n'importe quel '), (' py32 ',' aucun ',' n'importe quel '), (' py31 ',' aucun ',' n'importe lequel '), (' py30 ',' aucun ',' n'importe quel ')]
Les balises pour le fichier peuvent ĂȘtre vues dans le nom du fichier.
Pourriez-vous afficher les différences entre pip debug -v
dans pip 20.0.1 et pip 19.3.1?
--- /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
`` `diff
-pip version: pip 19.3.1 Ă partir de c: sdkspython37-32libsite-packagespip (python 3.7)
+ version pip: pip 20.0.1 de c: sdkspython37-32libsite-packagespip (python 3.7)
sys.version: 3.7.6 (tags / v3.7.6: 43364a7ae0, 18 décembre 2019, 23:46:00) [MSC v.1916 32 bits (Intel)]
sys.executable: c: sdkspython37-32python.exe
sys.getdefaultencoding: utf-8
@@ -8,14 +8,21 @@ locale.getpreferredencoding: cp1252
sys.platform: win32
sys.implementation:
nom: cpython
-La variable de configuration 'Py_DEBUG' n'est pas dĂ©finie, la balise Python ABI est peut-ĂȘtre incorrecte
-La variable de configuration 'WITH_PYMALLOC' n'est pas dĂ©finie, la balise Python ABI est peut-ĂȘtre incorrecte
-Ătiquettes compatibles: 14
+ valeur de configuration 'cert': global
+ REQUESTS_CA_BUNDLE: Aucun
+ CURL_CA_BUNDLE: Aucun
+ pip._vendor.certifi.where (): c: sdkspython37-32libsite-packagespip_vendorcertificacert.pem
+ Balises compatibles: 19
cp37-cp37m-win32
+ cp37-abi3-win32
cp37-aucun-win32
- py3-none-win32
+ cp36-abi3-win32
+ cp35-abi3-win32
+ cp34-abi3-win32
+ cp33-abi3-win32
+ cp32-abi3-win32
+ py37-none-win32
cp37-aucun-aucun
- cp3-aucun-aucun
py37-aucun-aucun
py3-aucun-aucun
py36-aucun-aucun
Similaire sur Windows - la section balise de la sortie:
--- ".\\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
On dirait que packaging.tags
a des valeurs différentes de la version pip utilisée en interne dans pip 19. La principale différence est l'absence de {py3,cp3}-none-win_amd64
. Ce qui n'est pas un tag standard généré par bdist_wheel
AFAIK, donc au moins l'impact sera limité aux personnes qui définissent des tags personnalisés.
Les spĂ©cifications ne disent pas grand-chose sur la validitĂ© des balises personnalisĂ©es comme celle-ci, c'est donc sans doute dans le domaine du «comportement indĂ©fini». Bien que cela n'aide pas les personnes touchĂ©es par cela, cela suggĂšre qu'il serait bon d'ĂȘtre plus prĂ©cis dans les normes.
BTW, je ne suis pas tout à fait sûr de ce que mxnet-1.5.1.post0-py2.py3-none-manylinux1_x86_64.whl
mĂȘme moyen - les versions de MacOS de mxnet ont un ensemble ABI spĂ©cifique, pourquoi la construction de manylinux pas? Les builds manylinux de Numpy ont un ABI, donc cela ne semble pas ĂȘtre un problĂšme gĂ©nĂ©ral avec la chaĂźne d'outils manylinux. Les balises pour pyenchant ont Ă©galement l'air un peu bizarres ...
les versions MacOS de mxnet ont un ensemble ABI spécifique, pourquoi manylinux ne construit-il pas?
J'ai briÚvement vérifié le package Linux, et il semble qu'aucune des bibliothÚques natives ne fasse référence aux symboles Python. Il semble que MXNet utilise ctypes
pour l'interopérabilité avec le code natif, donc ne pas avoir d'ABI a du sens.
J'ai le mĂȘme problĂšme en installant icc-rt (Ă partir d'Intel-numpy) (2020.0.133) en utilisant pip == 20.0.1
J'ai briÚvement vérifié le package Linux, et il semble qu'aucune des bibliothÚques natives ne fasse référence aux symboles Python. Il semble que MXNet utilise des ctypes pour l'interopérabilité avec le code natif, donc ne pas avoir d'ABI a du sens.
D'ACCORD. Pourquoi a-t-il besoin d'une balise "manylinux" dans ce cas, s'il utilise des ctypes pour tout? En fait, ne passez pas de temps sur cette question, je ne suis pas un expert de Linux donc je ne suivrais probablement pas la réponse de toute façon.
Au minimum, cela semble devoir ĂȘtre soulevĂ© comme un problĂšme avec la bibliothĂšque packaging
. IndĂ©pendamment de ce que fait pip, si ce sont des balises valides, elles devraient ĂȘtre prises en charge dans packaging.tags
, et une discussion générale sur les balises à prendre en charge est probablement mieux ici qu'ici.
D'ACCORD. Pourquoi a-t-il besoin d'une balise "manylinux" dans ce cas, s'il utilise des ctypes pour tout? En fait, ne passez pas de temps sur cette question, je ne suis pas un expert de Linux donc je ne suivrais probablement pas la réponse de toute façon.
Je rĂ©pondrai quand mĂȘme: la roue contient des bibliothĂšques Linux natives, donc la balise manylinux1
sens.
Dans https://github.com/pypa/pip/issues/7620#issuecomment -576743862 @tomasaschan a signalĂ© ce que je pense ĂȘtre ce mĂȘme problĂšme pour xgboost
, qui est livré comme xgboost-0.90-py2.py3-none-manylinux1_x86_64.whl
. Il semble Ă©galement contenir des bibliothĂšques natives, peut-ĂȘtre pour la JVM.
@IRDonch Merci. Je ne suis en fait cette explication đ sens.
@jamadden D'accord, cela ressemble au mĂȘme problĂšme.
@jamadden Que puis-je faire localement pour vous aider Ă dĂ©terminer si c'est la mĂȘme chose?
@tomasaschan Pouvez-vous coller ici la sortie de pip debug -v
?
λ 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
λ cat pip19.log
pip version: pip 19.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
sys.version: 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0]
sys.executable: /usr/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
Compatible tags: 42
cp36-cp36m-manylinux2014_x86_64
cp36-cp36m-manylinux2010_x86_64
cp36-cp36m-manylinux1_x86_64
cp36-cp36m-linux_x86_64
cp36-abi3-manylinux2014_x86_64
cp36-abi3-manylinux2010_x86_64
cp36-abi3-manylinux1_x86_64
cp36-abi3-linux_x86_64
cp36-none-manylinux2014_x86_64
cp36-none-manylinux2010_x86_64
cp36-none-manylinux1_x86_64
cp36-none-linux_x86_64
cp35-abi3-manylinux2014_x86_64
cp35-abi3-manylinux2010_x86_64
cp35-abi3-manylinux1_x86_64
cp35-abi3-linux_x86_64
cp34-abi3-manylinux2014_x86_64
cp34-abi3-manylinux2010_x86_64
cp34-abi3-manylinux1_x86_64
cp34-abi3-linux_x86_64
cp33-abi3-manylinux2014_x86_64
cp33-abi3-manylinux2010_x86_64
cp33-abi3-manylinux1_x86_64
cp33-abi3-linux_x86_64
cp32-abi3-manylinux2014_x86_64
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
cp36-none-any
cp3-none-any
py36-none-any
py3-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any
λ cat pip20.log
pip version: pip 20.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
sys.version: 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0]
sys.executable: /usr/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
'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
cp36-cp36m-manylinux2014_x86_64
cp36-cp36m-manylinux2010_x86_64
cp36-cp36m-manylinux1_x86_64
cp36-cp36m-linux_x86_64
cp36-abi3-manylinux2014_x86_64
cp36-abi3-manylinux2010_x86_64
cp36-abi3-manylinux1_x86_64
cp36-abi3-linux_x86_64
cp36-none-manylinux2014_x86_64
cp36-none-manylinux2010_x86_64
cp36-none-manylinux1_x86_64
cp36-none-linux_x86_64
cp35-abi3-manylinux2014_x86_64
cp35-abi3-manylinux2010_x86_64
cp35-abi3-manylinux1_x86_64
cp35-abi3-linux_x86_64
cp34-abi3-manylinux2014_x86_64
cp34-abi3-manylinux2010_x86_64
cp34-abi3-manylinux1_x86_64
cp34-abi3-linux_x86_64
cp33-abi3-manylinux2014_x86_64
cp33-abi3-manylinux2010_x86_64
cp33-abi3-manylinux1_x86_64
cp33-abi3-linux_x86_64
cp32-abi3-manylinux2014_x86_64
cp32-abi3-manylinux2010_x86_64
cp32-abi3-manylinux1_x86_64
cp32-abi3-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
py36-none-any
py3-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any
pip/_vendor/packaging/tags.py
332c332
- platforms = _platform_tags
---
+ platforms = _platform_tags()
334c334
- for platform_ in platforms():
---
+ for platform_ in platforms:
semble résoudre le problÚme
Voici un Dockerfile qui reproduit notre message d'erreur:
FROM ubuntu:bionic-20190912.1
RUN set -ex \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
python3 python3-dev python3-pip
RUN pip3 install --upgrade pip==20.0.1 setuptools
RUN echo "xgboost==0.81" >> requirements.txt
RUN pip3 install -r requirements.txt
@jeroendecroos Bonne prise - cela semble ĂȘtre un simple bogue dans packaging.tags
(réutiliser un itérateur plutÎt que de le recréer à chaque fois). Pourriez-vous ouvrir un problÚme contre https://github.com/pypa/packaging pour cela - et si vous pouviez transformer votre correctif en un PR, ce serait encore mieux!
Je ne sais pas si cela aide, mais je suis confrontĂ© au mĂȘme problĂšme en essayant d'installer dotnetcore2
Face au mĂȘme problĂšme avec freetype-py sur macOS: https://github.com/rougier/freetype-py/issues/119 ("corrigĂ©" en Ă©pinglant Ă 19.3.1)
Attendez-vous Ă une version corrigĂ©e pour cela demain, en supposant que je rĂ©cupĂšre de mon mal de tĂȘte actuel d'ici lĂ . :)
MĂȘme problĂšme avec nos roues internes (pip 20.0.1), une solution de contournement consiste Ă utiliser pip <20 pour le moment. EspĂ©rons que votre prochain correctif d'aujourd'hui le rĂ©soudra. Merci!
Okie, # 7643 devrait corriger les choses. Une fois que cela sera fusionné (et que je reviendrai à mon ordinateur portable), je ferai la version pip 20.0.2.
Si les gens veulent essayer # 7643 et confirmer que cela résout effectivement le problÚme pour eux, ce serait génial! Pour l'installer, vous pouvez faire:
pip install https://github.com/pypa/pip/archive/1cf779c1ea88053c690686571d67826f11463232.zip
Veuillez utiliser la rĂ©action đ sur ce commentaire si vous avez essayĂ© le PR, et cela fonctionne pour vous. :)
Okie, donc le correctif est maintenant en master. Je vais faire la sortie dans un instant - veuillez suivre # 7531.
Sortie 20.0.2 contenant le correctif pour cela.
Si vous voyez toujours quelque chose de similaire, jetez un Ćil Ă # 7629 (si vous ĂȘtes sur PyPy) ou signalez un nouveau problĂšme. :)
Cela fonctionne à nouveau avec pip 20.0.2 publié il y a quelques minutes. Merci à tous pour le patch opportun!
Merci, nous sommes à nouveau opérationnels!
@pradyunsg Je peux confirmer que ma repro Docker ci-dessus est corrigée dans 20.0.2.
Excellent travail Ă ce sujet, un immense merci (de nous tous)! â€ïž
Il y a une régression
ModuleNotFoundError: No module named 'pip._internal.download'
@afabiani pouvez-vous fournir un
Oh, je vois que tu l'as fait au # 7645
Merci! C'est un problÚme indépendant causé par une utilisation non prise en charge de pip, et non par un bogue / régression introduit dans pip 20.0.2. Je vois que @pfmoore y a répondu plus en détail, alors
Ran dans cette fin vendredi et est arrivĂ© au travail ce matin pour le trouver dĂ©jĂ corrigĂ© et publiĂ© - merci Ă tous ceux qui ont contribuĂ© Ă faire en sorte que le correctif se produise si rapidement! :RĂ
Hey! Ce correctif (20.0.2) n'a pas résolu mon problÚme. Quelqu'un a une idée de ce qui cause ce problÚme?
pip install artefacts-keyring
Recherche dans les index: https://pypi.org/simple, PRIVATE_PACKAGE_REFERENCE
Collectionner des artefacts-porte-clés
Téléchargement de artifacts_keyring-0.2.9-py2.py3-none-any.whl (4,8 Mo)
| ââââââââââââââââââââââââââââââââ | 4,8 Mo 2,5 Mo / s
Exigence déjà satisfaite: keyring> = 16.0 dans /usr/local/lib/python3.7/site-packages (from artifacts-keyring) (21.1.0)
Exigence dĂ©jĂ satisfaite: requĂȘtes> = 2.20.0 dans /usr/local/lib/python3.7/site-packages (from artifacts-keyring) (2.22.0)
ERREUR: impossible de trouver une version qui satisfait Ă l'exigence dotnetcore2; sys_platform! = "win32" et python_version> = "3.0" (de artifacts-keyring) (de ver
sions: aucune)
ERREUR: aucune distribution correspondante trouvée pour dotnetcore2; sys_platform! = "win32" et python_version> = "3.0" (à partir du trousseau de clés artefacts)
Si vous voyez toujours quelque chose de similaire, jetez un Ćil Ă # 7629 (si vous ĂȘtes sur PyPy) ou signalez un nouveau problĂšme. :)
Veuillez déposer un nouveau problÚme.
Commentaire le plus utile
Attendez-vous Ă une version corrigĂ©e pour cela demain, en supposant que je rĂ©cupĂšre de mon mal de tĂȘte actuel d'ici lĂ . :)