den*_*var 9 python pip python-3.x
在 Python 2 中,我可以通过pip优先使用二进制包而不是源包来安装一组包(意思是:如果没有找到二进制则回退到源代码):
(1) pip install --prefer-binary -r requirements.txt
在 Python 3 中,我可以这样做:
(2) pip3 install --only-binary=:all: -r requirements.txt
但是(1)并不完全等于(2),因为前者说:
安装时首选二进制文件;但如果我找不到二进制选项,那么我会使用源代码。
后者说:
如果找不到二进制文件,我将失败;甚至不要从源头上尝试。
因此,从文档看来,一种解决方案可能是手动输入应考虑进行源安装的每个包 - 意思是:可以在命令行上多次提供“仅二进制”标志,因此可以处理特殊的 -像这样的情况(通过清空它,或为二进制包提供特定的包名)。这个答案在某种程度上详细说明了这种方法:Make pip download prefer to download source-distributions (not wheel)。
但是,我有大量的两种类型的包,所以我需要一种像 (1) 方法这样的自动化方式。
问题:如何在 Python/pip 3 中获得与 (1) 类似的自动化行为?
解决方案:Pip 不是 Python - 将 pip 升级到 20.X 并使用--prefer-binary.
现在可以将其配置为requirements.txt
--prefer-binary
<packages>
....
Run Code Online (Sandbox Code Playgroud)
https://github.com/pypa/pip/pull/7996