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字典多条件排序方法实例
Jun 30 Python
Python日志模块logging简介
Apr 13 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
python flask 多对多表查询功能
Jun 25 Python
Python subprocess模块详细解读
Jan 29 Python
Python实现二维数组输出为图片
Apr 03 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
Python pip install之SSL异常处理操作
Sep 03 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 什么是PEAR?
2009/03/19 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
php使用session二维数组实例
2014/11/06 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
python基于phantomjs实现导入图片
2016/05/13 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
小学生成长感言
2014/01/30 职场文书
社区母亲节活动方案
2014/03/05 职场文书
会议欢迎标语
2014/06/30 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
六年级学生期末评语
2014/12/26 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
redis 解决库存并发问题实现数量控制
2022/04/08 Redis