python的依赖管理的实现


Posted in Python onMay 14, 2019

主流开发语言的包管理工具一般都是支持依赖管理的,比如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写的一个简单DNS服务器实例
Jun 04 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
Python对列表中的各项进行关联详解
Aug 15 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
python gdal安装与简单使用
Aug 01 Python
python使用matplotlib绘制雷达图
Oct 18 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
详解Python3序列赋值、序列解包
May 14 #Python
Python实战之制作天气查询软件
May 14 #Python
python中时间模块的基本使用教程
May 14 #Python
使用Python正则表达式操作文本数据的方法
May 14 #Python
Django如何防止定时任务并发浅析
May 14 #Python
python3 pygame实现接小球游戏
May 14 #Python
Django 多环境配置详解
May 14 #Python
You might like
PHP新手上路(九)
2006/10/09 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
基于JQuery实现的Select级联
2014/01/27 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
详解python做UI界面的方法
2019/02/27 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
优秀毕业生求职信范文
2014/01/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
高三政治教学反思
2014/02/06 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
优秀会计求职信
2014/07/04 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
表扬稿格式范文
2015/01/16 职场文书
吴仁宝观后感
2015/06/09 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers