如何生成requirements.txt文件

笔记 · 2024-05-24 · 389 人浏览
如何生成requirements.txt文件

  最近在项目交接时,遇到对方无法运行我当前环境下的代码,而对方又需要手动去安装多个依赖包,这样太过麻烦。

  遇到这种问题,为了简化使用过程,我们可以借助requirements.txt文件来管理并列出所有项目依赖,并打包放在当前目录下,让对方一键安装。


方法一:freeze 方法

不推荐使用,因为有时候我们并没有创建虚拟环境,比如我平时就不喜欢进行包管理,需要什么就直接安装什么,导致所有的项目都是用一个环境。这会在生成requirements.txt文件时,出现将所有的环境打包出来。

1. 查看当前环境

  使用 pip freeze 来列出当前环境(包括venv、conda)下中安装的所有 Python 包及其确切的版本号。该命令会创建项目的依赖清单(requirements.txt),以便在其他环境中重新拉取相同的依赖包,确保了项目在不同环境中的一致性和可移植性。

  这里我们使用Pycharm为例,打开Terminal终端,输入pip freeze,便可查看项目当前依赖包。

pip freeze

pip freeze

2. 生成requirements.txt文件

  还是在该终端位置输入以下代码,会在当前工作目录下生成requirements.txt文件,其包含当前环境下安装的所有 Python 包及其版本。

pip freeze > requirements.txt

  运行后,发现会将当前 Pycharm 环境中已下载的所有包都导入到requirements.txt中,这样就显得很鸡肋,和给不给对方环境都一样。
requirements.txt

方法二:第三方库 pipreqs

推荐使用,可将当前项目用到的依赖包生成到requirements.txt文件。使用第三方库pipreqs生成项目的requirements.txt文件,pipreqs则会分析项目中的包含源代码文件,找出依赖包,并将它们及其版本写入requirements.txt文件。

1. 安装pipreqs

这里不做详细介绍,我就爱用pip,你管不着。

pip install pipreqs -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 生成requirements.txt文件

  依旧在当前终端下使用pipreqs命令,即可在指定目录(当前)下生成该文件。

pipreqs ./ --encoding=utf8  --force
参数 释义
–encoding=utf8 使用utf8编码
–force 强制执行,当存在则进行覆盖
./ 当前目录下

pipreqs

  我们再次打开生成的requirements.txt文件,可以看到只包含本项目用到的依赖包。对比之前醒目太多了。
requirements.txt

  至此,已经可以将项目需要的环境导出到requirements.txt文件,并一同打包发送给对方了。

  对方也只需要在终端使用pip install -r requirements.txt一条命令,就可以在他们的环境中安装相同的依赖包。当然可能需要加速网络环境或者使用国内镜像,这里采用清华镜像。

cmd

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Python
  1. xxcheng 2024-05-27

    这篇文章为Python开发者提供了一个非常实用的指南,特别是对于那些需要在不同环境中部署项目的人来说。文章清晰地解释了两种生成 requirements.txt 文件的方法,并给出了推荐的选择,即使用 pipreqs。这种方法的好处在于它能够更精确地识别项目实际依赖的包,避免了不必要的依赖问题。此外,文章还提供了详细的步骤和命令行参数,使得整个过程变得简单易懂。对于初学者来说,这是一个非常有帮助的资源,因为它不仅提供了解决方案,还解释了为什么这种方法是更好的选择。总的来说,这是一篇内容丰富、易于理解、实用性强的文章。

Theme Jasmine by Kent Liao

本网站由 又拍云 提供CDN加速/云存储服务

鄂ICP备2023005457号    鄂公网安备 42011302000815号

欢迎来自 * · * 的用户