我试图根据用户的平台从不同的来源安装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不要查找这个文件,或者至少在找不到文件的情况下恢复安装?
答案 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