安装需要vs需求文件

目录

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遵循语义版本控制,“A”的v2将指示兼容性中断,因此不允许v2是有意义的:

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

使用它不是最佳实践 install_requires 将依赖项固定到特定版本,或指定子依赖项(即依赖项的依赖项)。这是过度限制的,并阻止用户获得依赖性升级的好处。

最后,了解这一点很重要 install_requires 是一个“抽象”需求列表,即名称和版本限制,它们不能确定依赖项将从何处实现(即从哪个索引或源)。在安装时,使用 pip 选项。 1

需求文件

Requirements Files 最简单的描述就是 pip install 放入文件中的参数。

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

鉴于 install_requires 需求是最小的,需求文件通常包含一个完整的固定版本列表,以实现 repeatable installations 一个完整的环境。

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

鉴于 install_requires 元数据在安装过程中由PIP自动分析,而需求文件不是,只有当用户使用 pip install -r .


1(1,2)

有关“抽象”与“具体”需求的更多信息,请参阅https://caremad.io/2013/07/setup-vs-requirement/。