为什么pip
从安装软件包时Python拒绝二进制文件requirements.txt
?
我没有使用--no-binary
,也找不到任何提及这可能是默认值。绝对不是在没有安装时requirements.txt
。
当我django-silk
以这种方式安装软件包时,它会成功:
pip install -v django-silk==4.1.0
但是,当django-silk==4.1.0
在时requirements.txt
,我运行以下确切的命令行:
pip install -v -r requirements-prod.txt
我得到以下日志:
(...)
Skipping link: No binaries permitted for django-silk: (...)
Found link (...) version: 3.0.4
Skipping link: No binaries permitted for django-silk: (...)
Found link (...) version: 4.0.0
Skipping link: No binaries permitted for django-silk: https://files.pythonhosted.org/(...)/django_silk-4.0.0-py2.py3-none-any.whl (...)
Skipping link: No binaries permitted for django-silk: https://files.pythonhosted.org/(...)/django_silk-4.0.1-py2.py3-none-any.whl (...)
Skipping link: No binaries permitted for django-silk: https://files.pythonhosted.org/(...)/django_silk-4.1.0-py2.py3-none-any.whl (...)
Given no hashes to check 0 links for project 'django-silk': discarding no candidates
(...)
pip._internal.exceptions.DistributionNotFound: No matching distribution found for django-silk==4.1.0
为什么要pip
决定No binaries permitted for django-silk
呢?
更新:似乎问题不在于requirements.txt
文件本身,而在于requirements.txt
它还包含另一个软件包:
PyYAML --global-option="--with-libyaml" ; sys_platform != 'win32'
django-silk==4.1.0
因此,显然PyYAML
必须从源代码安装的事实也使pip
二进制程序包也被忽略了django-silk
。为什么会这样呢?
注意:我正在使用
Python 3.7.5
和pip 21.0.1
。
因此,事实证明这是由以下错误引起的pip
:
“-针对需求文件中特定需求的global-option禁止全局使用轮子”
https://github.com/pypa/pip/issues/4118
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句