我正在尝试使用 Tox 来测试 Python 和 Django 的特定版本,但还包括一个通用的 Pip 要求文件,其中包含用于所有情况的附加依赖项。
正如Tox 文档所解释的,您首先执行以下操作:
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
你做第二个喜欢:
deps = -r{toxinidir}/pip-requirements.txt
-r{toxinidir}/pip-requirements-test.txt
但是你如何结合这些?
如果我尝试定义多个 deps,Tox 会给我错误“重复名称 'deps'”,但我看不到将字典和列表符号组合为 deps 的方法。
我也试过:
deps =
-r{toxinidir}/pip-requirements.txt
-r{toxinidir}/pip-requirements-test.txt
django15: Django>=1.5,<1.6
django16: Django>=1.6,<1.7
虽然这没有给我任何解析错误,但是当我去运行测试时,我得到了错误:
错误:py27-django15:无法安装 deps [-r/usr/local/myproject/pip-requirements.txt,-r/usr/local/myproject/pip-requirements-test.txt,Django>=1.5,<1.6 ]; v = InvocationError('/usr/local/myproject/.tox/py27-django15/bin/pip install -r/usr/local/myproject/pip-requirements.txt -r/usr/local/myproject/pip-requirements- test.txt Django>=1.5,<1.6(见/usr/local/myproject/.tox/py27-django15/log/py27-django15-1.log)', 1)
大概是因为它将需求文件解释为文字 Python 包名称。