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自动格式化json文件的方法
Mar 11 Python
python计算对角线有理函数插值的方法
May 07 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
简单了解django索引的相关知识
Jul 17 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
Python数据正态性检验实现过程
Apr 18 Python
Python读取Excel一列并计算所有对象出现次数的方法
Sep 04 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
宝塔更新Python及Flask项目的部署
Apr 11 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
python单链表实现代码实例
2013/11/21 Python
python通过post提交数据的方法
2015/05/06 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
python监控进程脚本
2018/04/12 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python实现C4.5决策树算法
2018/08/29 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python绘制高斯曲线
2021/02/19 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
高三地理教学反思
2014/01/11 职场文书
工作鉴定评语
2014/05/04 职场文书
委托证明书
2014/09/17 职场文书
节水倡议书
2015/01/19 职场文书
经典祝酒词大全
2015/08/12 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
Java完整实现记事本代码
2022/06/16 Java/Android
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers