install_requires 与 requirements 文件#

install_requires#

install_requiresSetuptools setup.py 关键字,用于指定项目最低限度正确运行所需的内容。当项目由 pip 安装时,此规范用于安装其依赖项。

例如,如果项目需要 A 和 B,则 install_requires 如下所示

install_requires=[
   'A',
   'B'
]

此外,最好指出任何已知的下限或上限。

例如,可能已知,你的项目需要 'A' 的 v1,以及 'B' 的 v2,因此如下所示

install_requires=[
   'A>=1',
   'B>=2'
]

还可能已知项目 'A' 在其 v2 中引入了一个更改,该更改破坏了你的项目与 'A' 的 v2 及更高版本的兼容性,因此不允许 v2 是有道理的

install_requires=[
   'A>=1,<2',
   'B>=2'
]

不建议使用 install_requires 将依赖项固定到特定版本,或指定子依赖项(即你的依赖项的依赖项)。这是过于严格的限制,并且阻止用户获得依赖项升级的好处。

最后,了解 install_requires 是“抽象”需求的列表非常重要,即仅名称和版本限制,不会确定依赖项将从何处得到满足(即从哪个索引或源)。在安装时使用 pip 选项确定何处(即如何使它们“具体化”)。[1]

需求文件#

需求文件 最简单的描述,就是将 pip install 参数放入一个文件中的列表。

install_requires 定义单个项目的依赖项,需求文件 通常用于定义完整 Python 环境的需求。

install_requires 需求是最低限度的,需求文件通常包含固定版本的详尽列表,目的是实现完整环境的 可重复安装

install_requires 需求是“抽象”的,即与任何特定索引无关,需求文件通常包含 pip 选项,如 --index-url--find-links,以使需求“具体化”,即与特定索引或包目录相关联。 [1]

install_requires 元数据在安装期间由 pip 自动分析,需求文件则不然,并且仅在用户使用 python -m pip install -r 特别安装它们时才使用。