环境
描述
Pip似乎无法再安装任何版本低于0.9.5的mxnet
版本。
预期行为
它应该能够。 :-)这在点20之前有效。
如何繁殖
尝试在虚拟环境中安装mxnet==1.3.1
。
输出量
$ 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
将pip install
与--verbose
会生成一个巨大的日志,该日志似乎与此有关:
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/)
我们在内部轮子上使用版本20.0.1时也遇到此错误
(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.
使用pip install pip==19.3.1
可以正常工作。
内部车轮也一样。
不起作用:
pip install -U pip==20.0.1; pip install <wheel>
错误:
作品:
pip install -U pip==19.3.1; pip install <wheel>
似乎平台标签是这里的问题:标签“ any”正在工作,但是此指定转盘具有“ linux_x86_64”。
请注意,我有:
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')]
同样在这里。
19.3.1可以工作,但20.0.1可以:
pip._internal.exceptions.InstallationError:pyenchant-2.0.0-py2.py3.cp27.cp32.cp33.cp34.cp35.cp36.pp27.pp33.pp35-none-win32.whl在此平台上不受支持。
我的电脑的标签:[['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”)]
文件标签可以在文件名中看到。
您可以在点20.0.1和点19.3.1中打印pip debug -v
之间的差异吗?
--- /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版本:c:sdkspython37-32libsite-packagespip(python 3.7)中的pip 19.3.1
+ pip版本:c:sdkspython37-32libsite-packagespip(python 3.7)中的pip 20.0.1
sys.version:3.7.6(tags / v3.7.6:43364a7ae0,2019年12月18日,23:46:00)[MSC v.1916 32位(Intel)]
sys.executable:c:sdkspython37-32python.exe
sys.getdefaultencoding:utf-8
@@ -8,14 +8,21 @@ locale.getpreferredencoding:cp1252
sys.platform:win32
sys.implementation:
名称:cpython
-Config变量'Py_DEBUG'未设置,Python ABI标记可能不正确
-Config变量'WITH_PYMALLOC'未设置,Python ABI标记可能不正确
-兼容标签:14
+'cert'配置值:全局
+ REQUESTS_CA_BUNDLE:无
+ CURL_CA_BUNDLE:无
+ pip._vendor.certifi.where():c:sdkspython37-32libsite-packagespip_vendorcertificacert.pem
+兼容标签: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-无任何
-cp3-无-任何
py37-none-any
py3-none-any
py36-none-any
在Windows上类似-输出的标签部分:
--- ".\\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
看起来packaging.tags
值与pip 19内部使用的版本pip的值不同。主要区别是缺少{py3,cp3}-none-win_amd64
。 这不是bdist_wheel
AFAIK生成的标准标签,因此至少影响仅限于设置自定义标签的人员。
规范并没有过多说明像这样的自定义标签是有效的,因此可以说是在“未定义的行为”方面。 尽管这对受此影响的人们没有帮助,但确实表明在标准中更具体将是一件好事。
顺便说一句,我不确定mxnet-1.5.1.post0-py2.py3-none-manylinux1_x86_64.whl
到底是什么意思-mxnet的MacOS版本具有特定的ABI设置,为什么manylinux无法构建? Numpy的manylinux版本具有ABI,因此在manylinux工具链中这似乎不是一个普遍的问题。 pyenchant的标签也显得有些奇怪。
mxnet的MacOS版本具有特定的ABI集,为什么manylinux无法构建?
我简要地检查了Linux软件包,看来那里的本机库都没有引用Python符号。 看起来MXNet使用ctypes
与本机代码互操作,因此没有ABI是有意义的。
使用pip == 20.0.1安装icc-rt(来自intel-numpy)(2020.0.133)时遇到相同的问题
我简要地检查了Linux软件包,看来那里的本机库都没有引用Python符号。 看起来MXNet使用ctypes与本机代码互操作,因此没有ABI是有意义的。
好。 如果在所有情况下都使用ctypes,那么为什么需要“ manylinux”标签? 实际上,不要花任何时间在这个问题上,我不是Linux专家,所以我可能还是不会遵循答案。
至少,这听起来像应该作为packaging
库的问题来提出。 不管pip做什么,如果它们是有效的标记,则应在packaging.tags
对其进行支持,并且比此处更好地对应该支持的标记进行一般性讨论。
好。 如果在所有情况下都使用ctypes,那么为什么需要“ manylinux”标签? 实际上,不要花任何时间在这个问题上,我不是Linux专家,所以我可能还是不会遵循答案。
无论如何,我都会回答:方向盘中包含本机Linux库,因此manylinux1
标签有意义。
在https://github.com/pypa/pip/issues/7620#issuecomment -576743862 @tomasaschan报告了我认为xgboost
同一问题,该问题以xgboost-0.90-py2.py3-none-manylinux1_x86_64.whl
。 它似乎还包含本地库,也许是针对JVM的。
@IRDonch谢谢。 我确实遵循了这种解释🙂很有道理。
@jamadden同意,看起来像是同样的问题。
@jamadden我可以在本地做什么来帮助您确定是否相同?
@tomasaschan您可以在此处粘贴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:
似乎解决了问题
这是一个重现我们的错误消息的Dockerfile:
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很好-看起来可能是packaging.tags
的直接错误(重新使用迭代器,而不是每次都重新创建它)。 您是否可以针对https://github.com/pypa/packaging提出一个问题-如果您可以将其修复为PR,那就更好了!
不知道这是否有帮助,但尝试安装dotnetcore2
遇到相同的问题
在macOS上遇到与freetype-py相同的问题: https :
假设明天我可以从目前的头痛中恢复过来,请期待明天的错误修复版本。 :)
我们的自家车轮同样存在问题(pip 20.0.1),一种解决方法是暂时使用pip <20。 希望您即将发布的今天的修复程序能够解决该问题。 谢谢!
好的,#7643应该可以解决问题。 一旦合并(然后回到笔记本电脑),我将发布pip 20.0.2。
如果人们想试一试#7643并确认确实确实为他们解决了这个问题,那就太好了! 要安装它,您可以执行以下操作:
pip install https://github.com/pypa/pip/archive/1cf779c1ea88053c690686571d67826f11463232.zip
如果您尝试过PR,请在此评论中使用👍反应,它对您有用。 :)
好的,所以现在可以解决此问题。 我会稍作发布-请按照#7531。
发布了包含此修复程序的20.0.2。
如果仍然看到类似的内容,请查看#7629(如果您使用的是PyPy)或提出新的问题。 :)
几分钟前发布的pip 20.0.2现在可以再次使用。 感谢大家的及时补丁!
谢谢,我们又重新启动了!
@pradyunsg我可以确认我的Docker repro在20.0.2中已修复。
在这方面做的很棒,非常感谢(我们所有人)! ❤️
有回归
ModuleNotFoundError: No module named 'pip._internal.download'
@afabiani是否可以提供完整的追溯信息以及如何复制的说明? 在新一期杂志中,这似乎与本期主题无关。
哦,我看到您在#7645做过
谢谢! 这是一个不相关的问题,是由于不支持使用pip引起的,而不是pip 20.0.2中引入的错误/回归。 我看到@pfmoore在此有更详细的响应,因此让我们对该问题进行进一步讨论。
赶在星期五晚些时候到今天早上上班,发现它已经修复并发布了-感谢所有参与使修复尽快完成的人! :D
嘿! 此修复程序(20.0.2)实际上没有解决我的问题。 任何人都知道导致此问题的原因是什么?
pip安装工件-密钥
查看索引:https: //pypi.org/simple、PRIVATE_PACKAGE_REFERENCE
收集工件密钥
正在下载artifacts_keyring-0.2.9-py2.py3-none-any.whl(4.8 MB)
|████████████████████████████████|| 4.8 MB 2.5 MB /秒
已满足要求:/usr/local/lib/python3.7/site-packages中的keyring> = 16.0(来自artifacts-keyring)(21.1.0)
已满足要求:/usr/local/lib/python3.7/site-packages中的请求> = 2.20.0(来自artifacts-keyring)(2.22.0)
错误:找不到满足dotnetcore2要求的版本。 sys_platform!=“ win32”和python_version> =“ 3.0”(来自artifacts-keyring)(来自ver
sions:无)
错误:找不到dotnetcore2的匹配分发; sys_platform!=“ win32”和python_version> =“ 3.0”(来自artifacts-keyring)
如果仍然看到类似的内容,请查看#7629(如果您使用的是PyPy)或提出新的问题。 :)
请提出新的问题。
最有用的评论
假设明天我可以从目前的头痛中恢复过来,请期待明天的错误修复版本。 :)