--find-links和--index-url pip标志有什么区别?

问题描述:

阅读pip文档,我不清楚指定--find-links URL还是--index-url/--extra-index-url用于额外软件包的区别。--find-links和--index-url pip标志有什么区别?

The documentation states

-i, --index-url <url> 

Python包索引的基本URL(默认https://pypi.python.org/simple)。这应指向符合PEP 503(简单存储库API)的 存储库或以相同格式布置的本地 目录。

-f, --find-links <url> 

如果一个url或路径到一个html文件,然后解析链接到档案。如果本地路径或文件:// url是目录,则在目录列表中查找 的档案。

据我所知,两者之间没有真正的区别,除了索引URL必须跟在PEP 503之后。我想按照通常的逻辑选择所有可用的最新版本。

我错过了两者之间有没有其他的概念差异?如果是这样,哪些?如果没有,为什么都有呢?

index-url可以被认为是一个只有包上的东西的页面。您正在告诉pip在该页面上找到您想要安装的内容;并且该页面按照PEP 503以可预测的格式存在。索引将仅列出其可用的包。

find-links是查找某些软件包的位置数组。您可以将文件路径,单个URL传递给TAR或WHEEL文件,HTML文件,git存储库等。

例如,如果您想要使用本地系统中的某些软件包以及来自存储库的其他软件包,可以组合这两个软件包。

您可以在pip/test_index.pyp单元测试中看到pip将解析“软件包链接”的所有不同方式。