微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

假设我有一个 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。