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 相关文章推荐
Python2.x中文乱码问题解决方法
Jun 02 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
python实现按任意键继续执行程序
Dec 30 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python实现决策树C4.5算法的示例
May 30 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
Python中按键来获取指定的值
Mar 02 Python
Django Rest framework频率原理与限制
Jul 26 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
Python模块常用四种安装方式
Oct 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python字符串string的内置方法实例详解
2018/05/14 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python开发游戏的前期准备
2019/05/05 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
golang/python实现归并排序实例代码
2020/08/30 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
地球上的星星观后感
2015/06/02 职场文书