有没有办法告诉
tox
测试自动化工具在安装所有包时使用PyPI镜像(tox.ini
中的显式测试依赖项和来自setup.py
的依赖项)?
例如,
pip install
有一个非常有用的--use-mirrors
选项,可以将镜像添加到软件包服务器列表中。
Pip 还可以使用环境变量进行配置,
tox
让您可以在配置中设置:
setenv =
PIP_USE_MIRRORS=...
请注意,
--use-mirrors
已被弃用;相反,您可以设置 PIP_INDEX_URL
或 PIP_EXTRA_INDEX_URL
环境变量,代表 --index-url
和 --extra-index-url
命令行选项。
例如:
setenv =
PIP_EXTRA_INDEX_URL=http://example.org/index
将添加
http://example.org/index
作为替代索引服务器,在主索引没有包时使用。
Tox 可以配置为从不同的默认 PyPI 服务器安装依赖项和包:
作为 tox 命令行参数
tox -i http://pypi.my-alternative-index.org
使用
tox.ini
[tox]
indexserver =
default = http://pypi.my-alternative-index.org
来自 pip 文档:
pip 的命令行选项可以使用 PIP_
格式通过环境变量进行设置。破折号 (-) 必须替换为下划线 (_)。
来源:https://pip.pypa.io/en/stable/user_guide/#environment-variables
这意味着设置以下环境变量:
PIP_INDEX_URL=https://server1/pypi/simple
PIP_EXTRA_INDEX_URL=https://server2/pypi/simple
因此,使用 tox,您可以设置:
[testenv]
setenv =
PIP_INDEX_URL=https://server1/pypi/simple
PIP_EXTRA_INDEX_URL=https://server2/pypi/simple
但是,您只能使用 PIP_EXTRA_INDEX_URL 指定一个额外的索引 url。如果您需要多个,pip 建议在 pip 命令后附加多个
--extra-index-url <URL>
,因此如果您需要多个额外的索引 URL,您可以使用 tox 的 install_command
:
[testenv]
install_command =
python -m pip install {opts} {packages} --extra-index-url <URL1> --extra-index-url <URL2>
您可以通过使用
pip
将环境变量 PIP_INDEX_URL 传递到 setenv =
环境来定义 pip 的替代索引 URL,如 所示
[testenv]
setenv =
PIP_INDEX_URL = https://pypi.my-alternative-index.org
如果 PIP_INDEX_URL 已在运行
tox
的环境中定义,并且您希望将其传递到运行 pip
的环境,请使用以下解决方案,该解决方案将首先查看 PIP_INDEX_URL 的当前环境值,如果未定义,它将默认为传递的默认值:
[testenv]
setenv =
PIP_INDEX_URL = {env:PIP_INDEX_URL:https://pypi.my-alternative-index.org}
我也在某些情况下必须设置
PIP_TRUSTED_HOST
,如
[testenv]
setenv =
PIP_INDEX_URL = {env:PIP_INDEX_URL:https://pypi.my-alternative-index.org}
PIP_TRUSTED_HOST = {env:PIP_TRUSTED_HOST:pypi.my-alternative-index.org}