使用pip有条件地安装车轮文件

时间:2017-06-23 20:07:52

标签: python pip

我试图根据用户的平台从不同的来源安装nipy。我试图通过使用" platform_system"来实现这一目标。环境标志。

# requirements.txt

# installing from a local wheel file
/python35/wheels_repo/numpy-1.12.0.whl;platform_system == "Linux"
# installing from PyPi
numpy==1.12.0;platform_system == "Windows"

我在Linux上工作正常,但当我在Windows上搜索文件时 - 在Windows上甚至没有合适的文件路径 - 即使它&#39 ;受" platform_system"。

保护
Requirement '/python35/wheels_repo/numpy-1.12.0.whl' looks like a filename, but the file does not exist

然后安装停止。

有没有办法让pip不要查找这个文件,或者至少在找不到文件的情况下恢复安装?

1 个答案:

答案 0 :(得分:0)

我相信pip会一直检查文件是否存在。并且在检查安装要求之前完成此检查(即,如果环境标记匹配)。

然而,如果找不到文件,你可以做的是make pip继续安装。

<击>

只需更改您的要求:

/python35/wheels_repo/numpy-1.12.0.whl;platform_system == "Linux"

为:

--find-links "file:///python35/wheels_repo/" numpy-1.12.0.whl;platform_system == "Linux"

使用--find-links pip将进入另一个控制流,在该控制流中稍后评估URI,并且只有在它无效或未找到资源时才会打印警告

编辑:

我刚才意识到--find-links不适用于requirements.txt中的单个要求。

由于您不是简单地为每个平台安装不同的软件包,而是为每个平台安装不同来源的不同软件包,我建议将平台特定要求分成不同的文件(即:requirements_Windows.txt和requirements_Linux.txt并在每个平台上以不同方式运行“pip install -r”。

在Windows上,您可以使用pip2pi构建本地软件包存储库,然后运行:

pip install --extra-index-url file://[path-to-your-local-package-repository]/simple -r requirements_Windows.txt