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的垃圾回收机制深入分析
Jul 16 Python
Python深入学习之闭包
Aug 31 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
聊聊Python中的pypy
Jan 12 Python
python 获取图片分辨率的方法
Jan 08 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
tensorflow常用函数API介绍
Apr 19 Python
python中return如何写
Jun 18 Python
一文读懂Python 枚举
Aug 25 Python
Python 视频画质增强
Apr 28 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
微信小程序组件 marquee实例详解
2017/06/23 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
浅谈Python基础之I/O模型
2017/05/11 Python
Python列表(List)知识点总结
2019/02/18 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
.net面试题
2015/12/22 面试题
教师的实习鉴定
2013/12/15 职场文书
药品促销活动方案
2014/02/14 职场文书
工作求职自荐信
2014/06/13 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js
什么是SOLID
2022/03/24 Javascript