Python 如何查找我的项目中使用的所有软件包及其版本?

Python 如何查找我的项目中使用的所有软件包及其版本?,python,Python,我有一个python项目,我想为它写一个“需求”,所以我需要找到项目中使用的所有包。 有一种简单的方法吗?您可以通过运行pip freeze>requirements.txt来实现。 我建议在这里讨论一下,这已经解释得很清楚了 pip freeze命令按照以下步骤执行: 因此,当运行pip freeze>requirements.txt时,您正在将安装的软件包写入.txt文件中。我的评论中的原始答案: 您可以使用列出所有已安装的软件包及其特定版本: pip freeze > require

我有一个python项目,我想为它写一个“需求”,所以我需要找到项目中使用的所有包。
有一种简单的方法吗?

您可以通过运行
pip freeze>requirements.txt
来实现。 我建议在这里讨论一下,这已经解释得很清楚了

pip freeze
命令按照以下步骤执行:


因此,当运行
pip freeze>requirements.txt
时,您正在将安装的软件包写入
.txt
文件中。

我的评论中的原始答案:

您可以使用列出所有已安装的软件包及其特定版本:

pip freeze > requirements.txt
这将很好地工作,特别是如果您正在使用。如果不是,并且只想列出在特定项目中请求的包,请考虑@ Sidon .< /p> PIPREQS。 pip冻结列出所有安装的软件包,使用pipreqs。Pipreqs根据导入为任何项目生成requirements.txt文件

pip install pipreqs


Usage:
    pipreqs [options] <path>

Options:
    --use-local           Use ONLY local package info instead of querying PyPI
    --pypi-server <url>   Use custom PyPi server
    --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                          environments parameter in your terminal:
                          $ export HTTP_PROXY="http://10.10.1.10:3128"
                          $ export HTTPS_PROXY="https://10.10.1.10:1080"
    --debug               Print debug information
    --ignore <dirs>...    Ignore extra directories
    --encoding <charset>  Use encoding parameter for file open
    --savepath <file>     Save the list of requirements in the given file
    --print               Output the list of requirements in the standard output
    --force               Overwrite existing requirements.txt
pip安装pipreqs
用法:
pipreqs[选项]
选项:
--使用本地仅使用本地包信息,而不是查询PyPI
--pypi服务器使用自定义pypi服务器
--代理使用代理,参数将传递到请求库。您也可以只设置
终端中的环境参数:
$export HTTP_PROXY=”http://10.10.1.10:3128"
$export HTTPS\u PROXY=”https://10.10.1.10:1080"
--调试打印调试信息
--忽略。。。忽略额外目录
--编码使用编码参数打开文件
--保存路径在给定文件中保存需求列表
--打印输出标准输出中的需求列表
--强制覆盖现有需求.txt

pip freeze>requirements.txt
。这将列出所有已安装的软件包以及特定版本。将注释转换为社区wiki答案,请参见下文。pipreqs工作正常。如果用户未使用virtualenv怎么办?我有PySide项目,但当我做pip冻结时,PySide不会在任何地方列出,请不要只是从评论中复制答案。或者让它成为一个社区维基答案。(如下图所示)事实上,这可以被认为是提取项目需求的一种快速而肮脏的方法,因为您对您的virtualenv中的内容进行了简单的快照:您的virtualenv可能包含一些只对开发有用的库(应该排除这些库)。您真正需要的是运行应用程序所需的库(仅此而已)。您可以添加额外的需求:单元测试(nose,pytest…),样式检查(pylint…),文档(sphinx…)。等等…我是新来的,我会尽我最大的努力学习和贡献。不想复制或类似的东西。您关于虚拟环境的问题,我也在试图理解和回答自己。如果用户没有使用virtualenv怎么办?我有PySide项目,但当我执行pip冻结时,PySide不会列出任何您不需要使用virtualenv来使用
pip冻结的地方。如果您为pip使用的python解释器安装了pyside,它将显示在需求中。或者,
pip show pyside
将告诉您是否安装了pyside。在这种情况下,与
pip freeze
相比,这可能是更好的解决方案。是的,我也认为这是实现这一点的更好方法。您甚至可以使用--ignore标志忽略单元测试
pip install pipreqs


Usage:
    pipreqs [options] <path>

Options:
    --use-local           Use ONLY local package info instead of querying PyPI
    --pypi-server <url>   Use custom PyPi server
    --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                          environments parameter in your terminal:
                          $ export HTTP_PROXY="http://10.10.1.10:3128"
                          $ export HTTPS_PROXY="https://10.10.1.10:1080"
    --debug               Print debug information
    --ignore <dirs>...    Ignore extra directories
    --encoding <charset>  Use encoding parameter for file open
    --savepath <file>     Save the list of requirements in the given file
    --print               Output the list of requirements in the standard output
    --force               Overwrite existing requirements.txt