在python的setup.py中如何指定多个extra-index-url?

发布时间 2023-03-27 22:14:35作者: 天外归云

[本文出自天外归云的博客园]

以下内容来自chatGPT的回答(正解,已验证)

问题:在python setup.py中如何指定多个extra-index-url?

在 `setup.py` 文件中,我们可以使用 `setuptools` 工具的 `setup()` 函数来指定多个 `extra-index-url`。

例如,我们想要指定两个不同的 `extra-index-url`,一个是本地私有 PyPI 服务器,另一个是公共 PyPI 服务器,可以按照以下方式调用 `setup()` 函数:


from setuptools import setup
setup(
    ...
    install_requires=[
        "package1",
        "package2",
    ],
    dependency_links=[
        "http://localhost:8080/simple/",
        "https://pypi.org/simple/",
    ],
    ...
)

这里我们在 `dependency_links` 参数中指定了两个不同的 `extra-index-url`,一个是本地私有 PyPI 服务器,一个是公共 PyPI 服务器。

在这种情况下,当我们运行命令 `python setup.py install` 安装依赖时,`pip` 工具将会首先从本地私有 PyPI 服务器检索依赖包,如果该服务器没有找到依赖包,则会去公共 PyPI 服务器检索。如果两个服务器都找不到依赖包,则安装过程失败。

注意,`dependency_links` 参数已经被移除并不推荐使用,建议使用 `find_links` 参数代替。示例代码可以改为:


from setuptools import setup
setup(
    ...
    install_requires=[
        "package1",
        "package2",
    ],
    find_links=[
        "http://localhost:8080/simple/",
        "https://pypi.org/simple/",
    ],
    ...
)

这里我们在 `find_links` 参数中指定了两个不同的 `extra-index-url`,一个是本地私有 PyPI 服务器,一个是公共 PyPI 服务器。再次强调,`dependency_links` 参数已经被移除并不推荐使用,建议使用 `find_links` 参数代替。