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常用列表数据结构小结
Aug 06 Python
Python中的tuple元组详细介绍
Feb 02 Python
python网络编程之数据传输UDP实例分析
May 20 Python
Python标准库之Sys模块使用详解
May 23 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
Python模块、包(Package)概念与用法分析
May 31 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
python访问hdfs的操作
Jun 06 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
python自动获取微信公众号最新文章的实现代码
Jul 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 各种排序算法实现代码
2009/08/20 PHP
php读取3389的脚本
2014/05/06 PHP
php中的登陆login实例代码
2016/06/20 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
js判断密码强度的方法
2020/03/18 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python pandas库中的isnull()详解
2019/12/26 Python
Python3 元组tuple入门基础
2020/02/09 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
深入浅析Python代码规范性检测
2020/07/31 Python
德国网上药房:Apotal
2017/04/04 全球购物
五年后的职业生涯规划
2014/03/04 职场文书
初中生操行评语大全
2014/04/24 职场文书
高三复习计划
2015/01/19 职场文书
小学新教师个人总结
2015/02/05 职场文书
医院合作意向书范本
2015/05/08 职场文书
初中物理教学反思
2016/02/19 职场文书
MSSQL基本语法操作
2022/04/11 SQL Server