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函数参数*args**kwargs用法实例
Dec 04 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
mac下如何将python2.7改为python3
Jul 13 Python
python中下标和切片的使用方法解析
Aug 27 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
Python如何实现后端自定义认证并实现多条件登陆
Jun 22 Python
浅谈pytorch中的dropout的概率p
May 27 Python
Python面试不修改数组找出重复的数字
May 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
php 基础函数
2017/02/10 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
JS 统计时间
2021/03/09 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
Python3 合并二叉树的实现
2019/09/30 Python
python文字转语音的实例代码分析
2019/11/12 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
体检通知范文
2015/04/21 职场文书
雷锋的观后感
2015/06/10 职场文书
英语读书笔记
2015/07/02 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
Nginx如何配置根据路径转发详解
2022/07/23 Servers