Python 如何将每个环境毒素DEP与Pip需求文件相结合?

Python 如何将每个环境毒素DEP与Pip需求文件相结合?,python,django,unit-testing,python-unittest,tox,Python,Django,Unit Testing,Python Unittest,Tox,我试图使用Tox测试Python和Django的特定版本,但也包括一个通用的Pip需求文件,该文件包含用于所有情况的附加依赖项 如前所述,您首先要做的是: deps = django15: Django>=1.5,<1.6 django16: Django>=1.6,<1.7 py33-mysql: PyMySQL ; use if both py33 and mysql are in an env name py26,py27:

我试图使用Tox测试Python和Django的特定版本,但也包括一个通用的Pip需求文件,该文件包含用于所有情况的附加依赖项

如前所述,您首先要做的是:

deps =
    django15: Django>=1.5,<1.6
    django16: Django>=1.6,<1.7
    py33-mysql: PyMySQL     ; use if both py33 and mysql are in an env name
    py26,py27: urllib3      ; use if any of py26 or py27 are in an env name
    py{26,27}-sqlite: mock  ; mocking sqlite in python 2.x
但是如何将这些结合起来呢

如果我试图定义多个DEP,Tox会给出错误“重复名称'deps'”,但我看不到将字典和DEP的列表符号结合起来的方法

我还尝试:

deps =
    -r{toxinidir}/pip-requirements.txt
    -r{toxinidir}/pip-requirements-test.txt
    django15: Django>=1.5,<1.6
    django16: Django>=1.6,<1.7
deps=
-r{toxinidir}/pip-requirements.txt
-r{toxinidir}/pip-requirements-test.txt

django15:Django>=1.5,=1.6,=1.5,我想我真的不明白您真正想要完成的是什么,对于您直接提出的如何结合需求和tox显式依赖关系的问题,我也没有答案

也就是说,您可以根据环境条件在需求文件中包含依赖项。例如,仅为此版本的Python或此平台安装此依赖项


您可以查看或查看。

请包括您的
pip要求*.txt
文件。您是否在任何
requirements.txt
文件中冻结Django?Tox不应该将DEP的前两行解释为包,这就是
-r
的作用。我也有同样的问题,除了单独的tox特定需求和管理2套DEP之外,我没有找到令人满意的解决方案……我将在requirements-test.txt中包含测试所需的所有包。如果您想将测试需求拆分为多个文件,这也是可能的:只需在测试需求文件中添加
-r requirements base.txt
。并在requirements-base.txt中提取(您的一般PIP需求)包。所以在tox中,您只需要使用一个文件,并且您的错误不应该重复。
deps =
    -r{toxinidir}/pip-requirements.txt
    -r{toxinidir}/pip-requirements-test.txt
    django15: Django>=1.5,<1.6
    django16: Django>=1.6,<1.7