有啥方法可以自动输出 requirements.txt 吗?

Posted

技术标签:

【中文标题】有啥方法可以自动输出 requirements.txt 吗?【英文标题】:Is there any way to output requirements.txt automatically?有什么方法可以自动输出 requirements.txt 吗? 【发布时间】:2015-06-25 06:02:58 【问题描述】:

我想在 PyCharm 中为我的 Python 3 项目输出 requirements.txt。有什么想法吗?

【问题讨论】:

pip freeze > requirements.txt? @jonrsharpe 如果他使用的是虚拟环境。 @khajvah PyCharm 让您在创建新项目时设置和使用新的 virtualenv 变得非常容易,所以我不明白为什么不这样做。 pip freeze > requirements.txt 将输出所有已安装的包,但我只想要与项目相关的。 @ChenZhongPu 那么你应该设置一个特定于项目的virtualenv 并只安装该项目需要的东西。见jetbrains.com/pycharm/help/creating-virtual-environment.htmlpip freeze在那个环境中然后会创建你想要的列表。 【参考方案1】:

试试下面的命令:

pip freeze > requirements.txt

【讨论】:

这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 对不起 - 这确实提供了问题的答案。当然,它可以扩展 - 正如在 cmets 中所见,它不是所需的解决方案。但是在提示中输入的这一行将按照要求“自动输出 requirements.txt”。 我认为作者要求在 PyCharm 中实现它。这个命令可以工作,但除非它可以在 PyCharm 上下文中使用,否则我认为它不能回答问题 为什么这个答案甚至被赞成? pip freeze 只是列出 所有 已安装的包,与项目的要求无关。为什么到处都是这个答案? 在给定环境中安装的包是你的项目应该需要的。如果您在大型甚至中型项目中工作,并且没有将其隔离在 virtualenv 中,那么您做错了。当然,您必须手动分离“开发”需求和运行需求。【参考方案2】:

你可以在 Pycharm 中通过设置和项目解释器来完成。选择所有包及其版本和最新版本。然后将所有这些数据复制到 MS Word 文档中。 MS word 会将其视为表格。删除该表的中间列。现在将所有这些数据复制到记事本++中。搜索双空格“”或制表符并将其替换为“==”。将此文件另存为requirements.txt。它会工作

【讨论】:

尝试其他解决方案pip freeze > requirements.txt 创建一个包含每个(包括默认)包的 BIG requirements.txt 文件。我只想获得稍后在我的 vertenv 中安装的自定义包。所以这个 HACK 对我有用。【参考方案3】:

Pigar 效果很好,我刚刚测试过

https://github.com/damnever/pigar

上面pip freeze的答案只有在你开始用pip安装东西之前设置了一个virtualenv才能正常工作。否则,您最终会得到“超出要求”的要求。似乎 pigar 会查看您的所有导入语句并查找当前正在使用的版本。无论如何,如果你在开始之前设置了 virtualenv,它会更干净,否则 pigar 可以救你。它也在子目录中查找。

【讨论】:

最佳答案。对于任何需要它的人:“pip install pigar”,然后是“pigar”(在项目根目录中) 它甚至可以通过 conda 安装!【参考方案4】:

在 Pycharm 中打开终端并输入以下命令:

pip freeze > requirements.txt

并会自动创建 requirements.txt

【讨论】:

这应该是获得更多选票的唯一答案。它完全按照它的工作原理。【参考方案5】:

当然这篇文章有点老了,但我用我学到的东西贡献了同样的东西,据我所知,我们可以通过三种方式来生成 requirements.txt:

    使用FREEZE

pip freeze > requirements.txt

在运行命令之前,请确保已激活虚拟环境,因为 该命令将在与项目相同的文件夹中执行。将在与执行相同的文件夹中生成具有 Python 依赖项的文件 requirements.txt。 如果您使用此命令将从虚拟环境中收集所有要求。如果您需要获取仅在当前项目范围内使用的需求,那么您需要检查下一个选项。


    使用DEEPHELL

pip install --user dephell


    使用PIPREQS

点安装 pipreqs

pipreqs /path/to/project


注意

为什么要使用 pipreqs?因为 pip freeze 将从环境中收集所有依赖项。而 pipreqs 将收集仅在当前项目中使用的需求!

加上freeze只保存用pip install安装的包,保存环境中的所有包。

如果您想在不安装模块的情况下生成 requirements.txt,请使用 pipreqs

如果有其他方法可以继续学习,总是很感激:)

【讨论】:

以上是关于有啥方法可以自动输出 requirements.txt 吗?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以提高 PySpark 输出的效率吗?

有啥方法可以自动化 Windows 窗体测试吗?

Python 程序有啥好的自动从注释生成文档的方法

有啥方法可以将 ActionScript 3 (Flex/AIR) 项目打印到标准输出?

有啥方法可以在特定时间自动提交 git 中的更改

有啥方法可以使 SQLPlus 中的输出更宽(在 Windows 上)?