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调用java的Webservice示例
Mar 10 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
Python中url标签使用知识点总结
Jan 16 Python
Python数据可视化图实现过程详解
Jun 12 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
Python网络编程之ZeroMQ知识总结
Apr 25 Python
Python爬虫之爬取二手房信息
Apr 27 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP发送短信代码分享
2015/08/11 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python fabric实现远程部署
2017/01/05 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python中Threading用法详解
2017/12/27 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
硕士研究生自我鉴定
2013/11/08 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
党员岗位承诺书
2014/03/25 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL