pip需求文件中的可选依赖项

del*_*del 33 python dependencies pip pypi

如何在pip需求文件中指定可选依赖项?根据pip文档,这是可能的,但文档没有解释如何做到这一点,我在网上找不到任何示例.

Dan*_*aab 29

您可以创建a optional-requirements.txt和a ,而不是在与硬性要求相同的文件中指定可选的依赖项requirements.txt.

要将当前环境的包导出到文本文件中,您可以执行以下操作:

pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)

如有必要,请修改requirements.txt的内容以准确表示项目的依赖关系.然后,要在此文件中安装所有软件包,请运行:

pip install -U -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

-U告诉pip我们将软件包升级到最新版本,并-r告诉它在requirements.txt中安装所有软件包.

  • 我想你误解了这个问题。'pip freeze' 只会打印出所有的依赖项。我想知道的是如何在 pip 需求文件中指定哪些依赖项是必需的,哪些是可选的。 (3认同)

ana*_*nik 15

2015年,PEP-0508定义了一种指定可选依赖关系的方法requirements.txt:

requests[security]
Run Code Online (Sandbox Code Playgroud)

这意味着yourpackage需要requests其安全选项.您可以将其安装为:

pip install yourpackage[security]
Run Code Online (Sandbox Code Playgroud)

  • 哦,我认为问题在于,在requirements.txt中,括号表示依赖项的“额外”,而我将其解释为“如果我的包安装了该额外项,那么这只是我的包的依赖项” (3认同)
  • 您可以使用 [`extras_require` 参数](http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-依赖项)用于 `setuptools` 中的 `setup` 函数。您可以在 [the requests setup.py](https://github.com/requests/requests/blob/3c1d36b827417fdeaf5a1c106129de30dac371d7/setup.py#L98) 中看到“安全性”“额外”是如何配置的。 (2认同)