【问题标题】:Equivalent for `--find-links` in `setup.py`等效于 `setup.py` 中的 `--find-links`
【发布时间】:2020-01-01 12:04:42
【问题描述】:

setup.pypip--find-links / -f 标志是什么。

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

【问题讨论】:

  • 正如我在回答 dependency_links 中指出的那样,根据 setuptools 文档,似乎接受“包含直接下载链接的网页的 URL”。为了对您有所帮助,您介意更新您的问题以澄清它无法回答您的问题吗?

标签: python python-3.x pip setuptools easy-install


【解决方案1】:

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

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

例如:

setuptools.setup(
    # ...
    dependency_links=[
        "http://peak.telecommunity.com/snapshots/",
    ],
)

关于pip的重要说明:

自 2019 年 1 月 22 日发布 19.0 版本以来,pip 忽略 setuptools 选项@ 987654327@。 pip 上下文中的解决方案是使用pip install options --index-url, --extra-index-url, or --find-links 之一。

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

【讨论】:

  • @George 如果pip 用于安装您的软件包,则不要设置任何dependency_links。但是在你的包的文档中,告诉用户使用 pip 和相关选项--index-url--extra-index-url--find-links。最后,用户应该有责任选择从哪里安装依赖项。用户假设依赖来自官方pypi,相对安全。
  • 在这种情况下添加额外的安装说明并不是一个理想的解决方案,显然是可能的,但那时我不能完全不使用 pip 或 pypi 并以这种方式解决问题,整点使用 setup.py 是为了有一个标准化的安装过程供使用(例如,如果有人想使用我的包作为依赖项怎么办)
  • @sinroc - 我建议更新此答案以指定解决方案仅适用于
  • @ZaxR pip 决定放弃对 setuptools dependency_links 的支持的理由是(简而言之): pip 仅从 PyPI 下载,其他一切都必须由用户自己明确决定。更多细节可以在例如this discussion 中找到。这个决定对我来说很有意义。
  • @ZaxR 我仍然不明白为什么必须告诉用户使用替代索引如此重要。这比仅仅强迫用户从不同的位置下载而不让他们知道要好。这就是你建立或失去信任的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 2016-01-12
  • 2020-08-18
  • 1970-01-01
  • 2013-10-02
相关资源
最近更新 更多