等效于 `setup.py` 中的 `--find-links`

Geo*_*rge 11 python pip setuptools easy-install python-3.x

相当于in的--find-links/-f标志。pipsetup.py

我知道dependency_links存在,但这需要指向一个特定的文件,我想要类似的东西-f可以指向一个链接列表,可以根据版本和操作系统从中选择包。

sin*_*roc 6

setuptools上下文中,该dependency_links选项应该满足您的需求。根据setuptools文档,此选项接受:

包含直接下载链接的网页的 URL

例如:

setuptools.setup(
    # ...
    dependency_links=[
        "http://peak.telecommunity.com/snapshots/",
    ],
)
Run Code Online (Sandbox Code Playgroud)

关于pip 的重要说明

自2019 年 1 月 22 日发布的19.0版本以来,pip 忽略setuptools选项dependency_links。在该解决方案PIP上下文是要使用的一个pip install选项--index-url--extra-index-url--find-links

pip放弃对setuptools 的支持的决定背后的基本原理dependency_links是(简而言之):pip应该只从PyPI下载,除非用户自己明确负责通过使用这些前面提到的选项之一来允许从替代来源下载。例如,可以在此讨论中找到更多详细信息。

  • @George如果使用“pip”来安装您的软件包,则不要设置任何“dependency_links”。但在你的包的文档中,告诉用户使用 pip 和相关选项 `--index-url`、`--extra-index-url` 或 `--find-links`。最后它用户应该负责选择从哪里安装依赖项。用户假设依赖项来自官方pypi,并且相对安全。 (2认同)
  • 在这种情况下,添加额外的安装指令显然不是一个理想的解决方案,显然是可能的,但那时我不能完全使用 pip 或 pypi 并以这种方式解决问题,使用 setup.py 的全部目的是有一个标准化安装过程以供使用(例如,如果有人想使用我的包作为依赖项怎么办) (2认同)
  • @sinroc - 我建议更新此答案以指定该解决方案仅适用于 < pip 版本 19.0。我知道它在链接中这么说,但如果没有上下文,它会有点误导。我还在寻找这个问题的支持答案 (2认同)
  • @ZaxR我仍然不明白为什么必须告诉用户使用替代索引是一件大事。这比仅仅强迫用户从不同位置下载而不让他们知道要好。这就是你建立或失去信任的方式。 (2认同)