2022年 11月 9日

好用的python依赖包管理方法实践

        最近用python开发一个项目,涉及多个模块,多人开发的时候,将代码clone下来后,很多红叉叉,提示需要安装依赖,常规的方式,在代码编辑器中根据提示挨个安装依赖包,大家都重复这个动作,非常烦人,也搞不清楚项目有哪些依赖,以及依赖的版本号是什么。

一、烦人的python依赖包管理

        我们知道java有maven可以很好的管理依赖包及版本号,非常方便,那么python是否有呢?问了一圈人,搜索了一些知识,发现没有。大部分的方式都是使用pip来逐个安装依赖包,没有整体的依赖包管理。部署到服务器上的时候需要挨个的再次pip安装一遍,非常不方便。

二、解决python依赖包的最佳实践

        那么好的解决python依赖包的方式是什么呢?经过层层对比和实际操作,总结了一个最佳实践。

在开发代码的时候,大家是逐个安装依赖包的,这时候使用pip来进行安装是比较方便的。如安装requests包:

pip install requests

然后可以通过pip freeze |grep requests查看到安装的requests的版本:

  1. ~ % pip freeze |grep requests
  2. requests==2.26.0

然后在项目中增加一个依赖包管理文件:requrements.txt将所有的依赖包及版本号保存下来。可以通过命令生成这个requrements.txt文件,命令如下:

pip freeze >requrements.txt

然后查看这个requrements.txt文件,内容如下:

  1. ~ % more requrements.txt
  2. requests==2.26.0

这样后续增加的依赖都可以执行:pip freeze >requrements.txt将新增或者改变的依赖写到这个配置文件中,提交代码的时候记得提交到代码仓库的根目录中,就可以持续维护了。后续其他开发者直接安装这个依赖文件中的所有依赖即可开发,同时在服务器上部署的时候先安装这个依赖文件中的所有以来包,再进行部署即可。安装所有依赖,通过下面命令进行:

pip install -r requirement.txt