pipreqs 是什么?

在 Python 项目中,我们经常需要维护一个 requirements.txt 文件,以记录项目所依赖的第三方库。这个文件可以帮助我们在不同环境中重现相同的依赖关系,从而确保项目的可移植性和一致性。通常默认我们可以使用 pip 来生成 requirements.txt,但通过 pip 生成 requirements.txt 会存在一些问题。今天,我将向大家介绍一个方便的工具——pipreqs,它可以根据项目中的导入语句自动生成 requirements.txt 文件。下面将详细介绍如何使用 pipreqs 生成 Python 项目的 requirements.txt 文件。

同类型工具还有 pigar,相关阅读:

如何安装 pipreqs?

首先,我们需要安装 pipreqs。打开终端并运行以下命令:

pip install pipreqs

如果你不需要支持 Jupyter Notebook,你可以安装一个不包含相关依赖的版本。运行以下命令:

pip install --no-deps pipreqs
pip install yarg==0.1.9 docopt==0.6.2

使用 pipreqs 生成 Python 项目的 requirements.txt 文件

pipreqs 的基本使用用法

你可以使用以下命令生成 requirements.txt 文件:

pipreqs [<path>]

其中 <path> 是包含应用程序文件的目录路径(默认为当前工作目录)。

pipreqs 的参数选项

  • --use-local:仅使用本地包信息,而不查询 PyPI。
  • --pypi-server <url>:使用自定义的 PyPi 服务器。
  • --proxy <url>:使用代理,参数将传递给 requests 库。
  • --debug:打印调试信息。
  • --ignore <dirs>...:忽略额外的目录,每个目录用逗号分隔。
  • --no-follow-links:不要跟随符号链接。
  • --encoding <charset>:使用指定的字符集进行文件打开。
  • --savepath <file>:将依赖列表保存到指定的文件中。
  • --print:在标准输出中输出依赖列表。
  • --force:覆盖现有的 requirements.txt 文件。
  • --diff <file>:比较 requirements.txt 中的模块与项目中的导入。
  • --clean <file>:清理 requirements.txt,删除未在项目中导入的模块。
  • --mode <scheme>:启用动态版本控制,支持 <compat><gt><non-pin> 方案。
  • --scan-notebooks:查找 Jupyter Notebook 文件中的导入语句。

pipreqs 生成 requirements.txt 用法示例

假设我们的项目位于 /home/project/location 目录下,我们可以运行以下命令生成 requirements.txt 文件:

pipreqs /home/project/location

成功后,requirements.txt 文件将保存在指定的目录中。

为什么不使用 pip freeze 生成 requirements.txt 文件?

  • pip freeze 只会保存通过 pip install 安装的包,而不会考虑你当前项目中是否使用了这些包。
  • pip freeze 会保存整个环境中的所有包,包括你当前项目中未使用的包(如果你没有使用 virtualenv)。
  • 有时你只需要为新项目创建一个 requirements.txt 文件,而不需要安装这些模块。

希望这篇文章对你有所帮助!如果你有其他问题或想了解更多关于 Python 开发的知识,欢迎在评论区留言。

最后,祝您编码愉快!🐍


也可以看看