我可以为多个版本的Python提供单个Python requirements.txt文件吗?

时间:2015-11-18 04:11:49

标签: python pip virtualenv requirements.txt

我刚开始使用Windows 7上的virtualenv和virtualenvwrapper。我已经使用(分别)Python 2.7,3.4和3.5创建了3个不同的测试项目

我想创建一个Requirements.txt文件,为每个Python版本安装正确的二进制lxml模块。这样我可以在我可能创建的任何virtualenv上运行pip install -r "C:\PyModules\requirements.txt"。在an example listed elsewhere之后我尝试了这样的requirements.txt文件:

C:\PyModules\lxml-3.5.0-cp27-none-win_amd64.whl; python_version == '2.7'
C:\PyModules\lxml-3.5.0-cp34-none-win_amd64.whl; python_version == '3.4'
C:\PyModules\lxml-3.5.0-cp35-none-win_amd64.whl; python_version == '3.5'

但它没有用。在2.7环境中使用带有pip的文件可以得到:

lxml-3.5.0-cp34-none-win_amd64.whl is not a supported wheel on this platform.

在我的3.4环境中尝试它:

lxml-3.5.0-cp27-none-win_amd64.whl is not a supported wheel on this platform.

我曾希望环境标记(python_version ==' 2.7')会导致pip完全跳过那些引用不适合该Python版本的包的行。但是,当它检查WHL文件时,Python似乎忽略了python_version标记。

有没有办法在单个需求文件中完成我想要的内容?

编辑#1:这是Windows 7(64位),点7.1.2和virtualenv 13.1.2

编辑#2:正如Sebastian建议的那样,我尝试删除requirements.txt文件中数字周围的引号,这似乎是正确的方法:

C:\PyModules\lxml-3.5.0-cp27-none-win_amd64.whl; python_version == 2.7
C:\PyModules\lxml-3.5.0-cp34-none-win_amd64.whl; python_version == 3.4
C:\PyModules\lxml-3.5.0-cp35-none-win_amd64.whl; python_version == 3.5

但是在2.7环境下,我现在得到了这个新错误:

SyntaxError: don't know how to evaluate 'num' '2.7'

并且在3.4中它仍然是这个错误:

lxml-3.5.0-cp27-none-win_amd64.whl is not a supported wheel on this platform.

0 个答案:

没有答案