install_requires 与 requirements 文件¶
install_requires¶
install_requires 是 Setuptools setup.py 关键字,应用于指定项目最基本的运行需求。当项目由 pip 安装时,此规范用于安装其依赖项。
例如,如果项目需要 A 和 B,您的 install_requires 将如下所示
install_requires=[
'A',
'B'
]
此外,最佳实践是指出任何已知的下限或上限。
例如,可能已知您的项目至少需要版本 1 的“A”和版本 2 的“B”,因此它将如下所示
install_requires=[
'A>=1',
'B>=2'
]
还可能已知项目“A”在其版本 2 中引入了一个更改,该更改破坏了您的项目与版本 2 及更高版本的“A”的兼容性,因此不允许版本 2 是有意义的
install_requires=[
'A>=1,<2',
'B>=2'
]
不建议使用 install_requires 将依赖项固定到特定版本,或指定子依赖项(即您的依赖项的依赖项)。这过于严格,并阻止用户从依赖项升级中获益。
最后,重要的是要理解 install_requires 是“抽象”要求的列表,即只有名称和版本限制,不决定依赖项将从何处满足(即从哪个索引或源)。在哪里(即如何使它们“具体化”)将在安装时使用 pip 选项确定。[1]
Requirements 文件¶
Requirements 文件,最简单地说,只是一个文件中放置的 pip install 参数列表。
虽然 install_requires 定义了单个项目的依赖项,但 Requirements 文件 通常用于定义完整 Python 环境的需求。
虽然 install_requires 要求是最低限度的,但 requirements 文件通常包含固定版本的详尽列表,以实现完整环境的可重复安装。
虽然 install_requires 要求是“抽象的”,即不与任何特定索引相关联,但 requirements 文件通常包含 pip 选项,如 --index-url 或 --find-links,以使要求“具体化”,即与特定索引或包目录相关联。[1]
虽然 install_requires 元数据在安装过程中由 pip 自动分析,但 requirements 文件则不然,只有当用户使用 python -m pip install -r 明确安装它们时才使用。