为什么Python pip在从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的二进制包。为什么会发生这种事?
备注:I正在使用
Python 3.7.5和pip 21.0.1.
发布于 2021-02-26 11:35:45
https://stackoverflow.com/questions/66382736
复制相似问题