Python项目依赖项管理的秘诀:requirements.txt文件

一、背景

公司里面很多时候我们开发的Python项目都不只是我们一个人使用,而是整体团队使用。Python项目需要在别人的电脑环境中运行,则需要别人的电脑环境中也要安装上我们项目需要的python库。那么项目中到底用到了哪些Python库,每个库具体是用哪个版本,一个一个手动记载肯定是非常麻烦,而且容易遗漏,另外别人拿着我们的项目去一个一个手动安装库也很不方便。

因为为了解决以上的问题,requirements.txt应运而生,只需要一个requirements.txt文件,记录项目使用了哪些库哪个版本,别人用我们的项目的时候也可以一键安装项目所需要的所有库。

二、什么是 requirements.txt 文件?

requirements.txt 文件是一个文本文件,用于列出你的Python项目所依赖的软件包及其版本。该文件通常位于项目的根目录中,并且由开发者手动维护。在该文件中,每行列出一个依赖项,格式为 package_name==version,其中 package_name 是软件包的名称,version 是软件包的版本号。例如:

requests==2.25.1
numpy==1.19.3
pandas==1.2.0

三、生成requirements.txt的两种方式

1、使用pip freeze命令

直接使用pip freeze命令生成requirements.txt文件:

pip freeze > requirements.txt

但是这种方式只适合你的项目是使用单虚拟环境的情况,因为该方式会将环境中安装的所有依赖库都记录在requirements.txt文件中,即使当前项目没有用到这个库:
在这里插入图片描述
如果项目是使用单虚拟环境的情况,由于单虚拟环境中只安装了本项目需要的库,因此用上面这个命令是可以的。

2、使用pipreqs命令

pipreqs也是一个库,先安装它:

pip install pipreqs

需要离线安装的可以在这里下载: https://github.com/bndr/pipreqs

然后使用下面的命令生成requirements.txt文件:

pipreqs ./ --encoding=utf8 --force

命令解释:

  • ./表示在当前目录下生成requirements.txt文件
  • encoding=utf8 为使用utf8编码,不然可能会报UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xae in position 406: illegal multibyte sequence 的错误。
  • force 强制执行,表示如果生成目录下的requirements.txt存在时,则覆盖生成新的。

可以看见requirements.txt文件中只有本次项目用到的依赖包了:
在这里插入图片描述

四、使用requirements.txt文件

别人的电脑上在Pycharm中可以依赖requirements.txt文件,一键逐个安装项目所有的依赖包。使用以下命令:

pip install -r requirements.txt

如果安装时报错:ERROR: Could not install packages due to an OSError: [WinError 5]:xxxx, Consider using the --user option or check the permissions
在这里插入图片描述
则根据错误提示,直接在命令中加入–user即可解决问题:

 pip install --user -r requirements.txt

五、结论

在本文中,我们介绍了 requirements.txt 文件的作用、格式和如何使用它来管理你的依赖项。使用 requirements.txt 文件,可以确保你的项目在不同的开发环境中运行一致,并且可以简化项目的部署和维护。希望这篇文章对你有所帮助,并且可以更好地管理你的 Python 项目。

=================================================================================================
以上就是本次的全部内容,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~

欢迎关注下方我的公众号:程序员杨叔,各类文章、框架Demo源码都会在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值