python的依赖管理的实现

yipeiwu_com6年前Python基础

主流开发语言的包管理工具一般都是支持依赖管理的,比如PHP的composer、Java的mvn。

对于python来说又该如何管理依赖呢?

pip基本用法

python还不错,它提供了pip命令来安装依赖,同时pip会自动安装间接依赖,的确是很方便的。

安装依赖的命令是pip,举个栗子:

pip install requests

然后可以看到一些打印信息:

Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (2.21.0)
Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from requests) (2018.4.16)
Requirement already satisfied: idna<2.9,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from requests) (2.7)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from requests) (3.0.4)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from requests) (1.23)

可以明确安装的requests库版本是2.21.0,这也可以后续通过pip freeze命令来查看:

 pip freeze |grep requests
requests==2.21.0
requests-oauthlib==1.0.0

编写requirements.txt

为了将开发时的依赖保留下来,我们可以编写一个文本文件叫做requirements.txt,内容如下:

requests==2.21.0

记得把这个文件提交到源码仓库的根目录,我们可以看到python开源项目都遵循这个套路,比如kubenetes-client的 requirements.txt

certifi>=14.05.14 # MPL
six>=1.9.0 # MIT
python-dateutil>=2.5.3 # BSD
setuptools>=21.0.0 # PSF/ZPL
urllib3>=1.23 # MIT
pyyaml>=3.12 # MIT
google-auth>=1.0.1 # Apache-2.0
ipaddress>=1.0.17;python_version=="2.7" # PSF
websocket-client>=0.32.0,!=0.40.0,!=0.41.*,!=0.42.* # LGPLv2+
requests # Apache-2.0
requests-oauthlib # ISC

安装所有依赖

当我们变更部署环境时,通过执行如下命令即可安装所有依赖:

pip install -r requirements.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中pygame安装过程(超级详细)

python中pygame安装过程(超级详细)

安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中) Add Python 3.7 to PATH需要选择的,如果没有选择的话,需要自己设置,我一...

python获取指定字符串中重复模式最高的字符串方法

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的...

Python实现的归并排序算法示例

Python实现的归并排序算法示例

本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)...

Python提取支付宝和微信支付二维码的示例代码

Python提取支付宝和微信支付二维码的示例代码

支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以...

如何基于Python获取图片的物理尺寸

如何基于Python获取图片的物理尺寸

这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 如何获取图片的物理尺寸...