install_requires 与 requirements 文件#
install_requires#
install_requires
是 Setuptools 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
特别安装它们时才使用。