如何在不下载或安装软件包的情况下获取 pip 命令将安装的软件包列表?

时间:2021-07-22 18:22:19

标签: python pip setuptools

假设我有一个 setup.cfg(或 setup.py)文件,其中列出了所有软件包。

现在,如果我运行 pip install .,它将安装所有软件包,并且它的依赖项列在 install_requires 中。有没有办法只获取包和依赖项的列表而不下载或安装它们,比如 requirements.txt 格式?

理想情况下,我正在寻找的这个命令也适用于 pip install '.[tests]',它会在 tests 中的 extras_require 下列出为 setup.cfg 定义的包。

这个问题没有问什么:

  • 我不是要求使用 pip freezepip list 类型的命令来列出环境中安装的所有软件包。相反,我想要相同类型的列表,不是已经安装的包,而是将由 setup.cfg 中定义的配置安装的包。
  • 我也不是在问如何通过下载这些包来生成这个列表,而只是为了收集它们。我不明白为什么 pip 需要下载这些包,而我需要的只是包和依赖项及其版本的列表。

解决方案

stackoverflow 将此问题标记为重复,但它不是。我找到了一个解决方案,但是因为这个问题已经关闭,我将无法将其作为答案提交,但会将其发布在问题中。

要为 requirements.txtinstall_requires 中的 setup.cfg 中列出的软件包生成 setup.py,您需要安装 pip-tools

pip install pip-tools
pip-compile

要生成包含在 requirements.txt 下为 extras_requirestests 指定的包的 dev 文件:

pip-compile --extra tests --extra devrequirements.txt file with packages listed under

0 个答案:

没有答案