Python与tox。如何为特定依赖设置install_command

1 投票
2 回答
1538 浏览
提问于 2025-04-19 05:49

你好,我正在尝试使用Tox来设置我的测试环境。

我想解决什么问题呢?

我有几台服务器在运行测试,它们的网络设置各不相同(比如不同的IP地址、不同的接口名称等等)。所以我准备了一个模块,里面包含了所有的配置,我是通过服务器编号来安装它的,也就是说:

pip install . --install-option="--serverNumber=102"

这样在我的环境中,我只有一个配置,可以在测试中导入它,而不需要知道实际运行测试的服务器是什么。

现在我正在尝试使用Tox来设置虚拟环境,但我遇到了一个问题,因为我不知道怎么为某个特定的依赖项定义安装命令。我甚至不知道这是否可能。

提前谢谢你的帮助。

祝好,
Krzysztof

2 个回答

-1

这样做怎么样:

  1. 先运行 pip install 来安装所有需要的包。

  2. 然后卸载你想要的那个特定包,再用 pip install foobar 重新安装,并加上额外的安装选项。

-

  pip uninstall foobar
  pip install foobar --install-option="--serverNumber=102"
2

在依赖项部分列出你的依赖,然后单独安装 foobar

[testenv]
deps =
   dep1
   dep2
   dep3
   ....

commands =
   pip install foobar --install-option="--serverNumber={posargs}"
   py.test 

如果你以这样的方式启动 tox:

tox -- 102

将会执行:

pip install foobar --install-option="--serverNumber=102" 

撰写回答