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 socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
跟老齐学Python之有容乃大的list(1)
Sep 14 Python
Python生成器(Generator)详解
Apr 13 Python
利用python模拟sql语句对员工表格进行增删改查
Jul 05 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
浅谈Python type的使用
Nov 19 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
Python基于httpx模块实现发送请求
Jul 07 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python 指定源路径来解决import问题的操作
Mar 04 Python
python脚本框架webpy的url映射详解
Nov 20 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
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
angular分页指令操作
2017/01/09 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
Python字符串格式化的方法(两种)
2017/09/19 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
python 读取串口数据的示例
2020/11/09 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
欢送退休感言
2014/02/08 职场文书
婚前协议书范本
2014/04/15 职场文书
2014年党课学习材料
2014/05/11 职场文书
教师师德师风整改措施
2014/10/24 职场文书
自荐信范文
2019/05/20 职场文书
创业计划书之农家乐
2019/10/09 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript