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中的is和id用法分析
Jan 26 Python
django静态文件加载的方法
May 20 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
python爬虫 正则表达式解析
Sep 28 Python
python [:3] 实现提取数组中的数
Nov 27 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
python利用faker库批量生成测试数据
Oct 15 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.ini中文版(2)
2006/10/09 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
详解react-redux插件入门
2018/04/19 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python内置类型性能分析过程实例
2020/01/29 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
社会实践感言
2014/01/25 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
红色经典电影观后感
2015/06/18 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
springboot入门 之profile设置方式
2022/04/04 Java/Android