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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
Python异常处理总结
Aug 15 Python
python+Django+apache的配置方法详解
Jun 01 Python
Sanic框架路由用法实例分析
Jul 16 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
python二元表达式用法
Dec 04 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
Django实现内容缓存实例方法
Jun 30 Python
Python 爬虫性能相关总结
Aug 03 Python
python 多线程死锁问题的解决方案
Aug 25 Python
python基础之停用词过滤详解
Apr 21 Python
Python的这些库,你知道多少?
Jun 09 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
php 文件状态缓存带来的问题
2008/12/14 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
使用python存储网页上的图片实例
2018/05/22 Python
python使用folium库绘制地图点击框
2018/09/21 Python
在django中,关于session的通用设置方法
2019/08/06 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python是怎么被发明的
2020/06/15 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
高山背包:High Sierra
2017/11/23 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
五年级英语教学反思
2014/01/31 职场文书
保护环境建议书
2014/03/12 职场文书
原材料检验岗位职责
2014/03/15 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
军事博物馆观后感
2015/06/05 职场文书
创业计划书之校园超市
2019/09/12 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android