如何告诉tox使用PyPI镜像来安装包?

问题描述 投票:0回答:5

有没有办法告诉

tox
测试自动化工具在安装所有包时使用PyPI镜像(
tox.ini
中的显式测试依赖项和来自
setup.py
的依赖项)?

例如,

pip install
有一个非常有用的
--use-mirrors
选项,可以将镜像添加到软件包服务器列表中。

python testing pypi tox
5个回答
17
投票

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
作为替代索引服务器,在主索引没有包时使用。


13
投票

由于

indexserver
已被弃用并将被删除,并且
--use-mirrors
也已已弃用,您可以使用install_command(在您的环境部分):

[testenv:my_env]
install_command=pip install --index-url=https://my.index-mirror.com --trusted-host=my.index-mirror.com {opts} {packages}

7
投票

Tox 可以配置为从不同的默认 PyPI 服务器安装依赖项和包:

  • 作为 tox 命令行参数

    tox -i http://pypi.my-alternative-index.org
    
  • 使用

    tox.ini

    [tox]
    indexserver =
        default = http://pypi.my-alternative-index.org
    

有关使用不同默认 PyPI url 的 Tox 文档链接


2
投票

来自 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>


0
投票

您可以通过使用

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}

© www.soinside.com 2019 - 2024. All rights reserved.