Djanog|requirements.txt生成
pip
通常我们熟悉使用的都是 pip, 这个工具确实方便项目管理依赖包。当想把当前项目依赖的包的名称和版本导入指定的 txt 文件中时,只需要执行
pip freeze > ./requirements.txt
此时可以看到项目下面生成了 requirements.txt
然后通过 pip list 查看项目依赖包
Django (1.8.3)
djangorestframework (3.1.3)
docopt (0.6.2)
gnureadline (6.3.3)
ipython (3.2.1)
MySQL-python (1.2.3)
pip (7.1.0)
pipreqs (0.2.8)
Pygments (2.0.2)
requests (2.7.0)
setuptools (18.0.1)
wheel (0.24.0)
yarg (0.1.9)
接着通过 cat ./requirements.txt
Django==1.8.3
djangorestframework==3.1.3
docopt==0.6.2
gnureadline==6.3.3
ipython==3.2.1
MySQL-python==1.2.3
pipreqs==0.2.8
Pygments==2.0.2
requests==2.7.0
wheel==0.24.0
yarg==0.1.9
此时可以看到 pip freeze 生成的列表比 pip list 少了两个包,分别是
- pip (7.1.0)
- setuptools (18.0.1)
至于原因:因为 virtualenv 创建虚拟环境时会自动包含了上面的两个依赖包
这种生成 requirements.txt 的方法很通用,可以在其他项目中执行
pip install -r path/requirements.txt
安装相关的依赖包,这是惯用的做法
pipreqs
使用 pipreqs 则需要安装,简单执行
pip install pipreqs
即可
现在看看此工具帮助提示,执行 pipreqs -h
pipreqs - Generate pip requirements.txt file based on imports
Usage:
pipreqs [options] <path>
Options:
--use-local Use ONLY local package information instead of querying PyPI
--debug Print debug information
--savepath <file> Save the list of requirements in the given file
--force Overwrite existing requirements.txt
很直白的知道此工具是创建环境依赖包的列表文件
注意
pipreqs - Generate pip requirements.txt file based on imports
此工具是基于 imports,这是什么意思呢,即你的项目引入了哪个包,此工具才会把引入的包写到 requirements.txt 中,是不是觉得要比 pip freeze 干净,注意生成的是 requirements.txt 文件,而不是 requirement.txt
例子
执行 pipreqs --use-local ./ 生成 requirements.txt
因为项目只引入了 django 和 pygments, 此时 cat requirements.txt, 文件中只包含了两条数据
Django == 1.8.3
Pygments == 2.0.2
引入问题
引入不是很完整,比如数据库依赖包,就不会包含进来,
pip-compile
使用前需要安装 pip install pip-tools 如果权限不够,请 sudo
使用步骤 1
先在项目目录中创建 requirements.in 文件,然后手动写入包文件名称
例如:requirements.in (例子随便写的)
django
yolk
使用步骤2
执行 pip-compile requirements.in, 然后 cat requirements.txt
#
# This file is autogenerated by pip-compile
# Make changes in requirements.in, then run this to update:
#
# pip-compile requirements.in
#
django==1.8.3
yolk==0.4.3
# The following packages are commented out because they are
# considered to be unsafe in a requirements file:
# setuptools==18.1 # via yolk
结论
生成 xx.txt 文件的方法有很多,上面三种方法各有优劣
| 名称 | 优点 | 缺点 |
|---|---|---|
| pip freeze | 包含列表完全 | 不相关的依赖包也会包含进来 |
| pipreqs | 只会包含项目 imports 的包 |
包含列表不是很完全 |
| pip-compile | 精准控制项目依赖包 | 需要手动操作,不方便 |
Djanog|requirements.txt生成的更多相关文章
- python笔记40-环境迁移freeze生成requirements.txt
前言 我们用python在本地电脑上开发完成一个python自动化项目用例,或者开发完成一个django项目. 需要部署到另外一台电脑或者服务器上的时候,需要导入python相关的依赖包,可以用fre ...
- pycharm中使用配置好的virtualenv环境,自动生成和安装requirements.txt依赖
1.手动建立: 第一步 建立虚拟环境 Windows cmd: pip install virtualenv 创建虚拟环境目录 env 激活虚拟环境 C:\Python27\Scripts\env\S ...
- Python 生成requirements文件以及使用requirements.txt部署项目
生成requirements.txt 当你的项目不再你的本地时,为了方便在新环境中配置好环境变量,你的项目需要一个记录其所有依赖包以及它们版本号的文件夹requirements.txt 文件. pip ...
- requirements.txt文件教程
方法有2种,命令都是一样,只是执行地方不一样 此方法主要用于迁移新环境使用,为防止代码出现问题,最好使用原装库,所以就有了迁移代码和库的操作 第一种:在pycharm中,左下角有个双重正方形,点击里面 ...
- Python requirements.txt
安装 pip install -r requirements.txt 生成 # 将当前环境下的所有以来导出, 配合虚拟环境更佳 pip freeze > requirements.txt
- 从pip+requirements.txt+virtualenv管理依赖到使用pipenv管理依赖-修改布署方式
背景: 已经使用pip+requirements.txt+virtualenv管理了项目一段时间,为了不要每次都 导出依赖(本地),安装依赖(服务器) 现在要使用pipenv来管理项目的依赖关系 思路 ...
- python 环境迁移之requirements.txt (window环境)
一.背景 1.有时候你本地用python编写代码,然后本地也安装了很多的库,那么你要迁移到服务器上,那么该怎么快速弄环境库呢? #第二,三步就可以解决. 2.有时候你本地用pyth ...
- pip自动生成requirements.txt依赖关系清单
Python项目中经常会带requirements.txt文件,里面是项目所依赖的包的列表,也就是依赖关系清单,这个清单也可以使用pip命令自动生成. pip命令: 1 pip freeze > ...
- python 项目自动生成requirements.txt文件
主要使用目的: 任何应用程序通常需要设置安装所需并依赖一组类库来满足工作要求.通过requirements.txt可以一次性安装程序所需要和依赖的包. 为工程生成requirements.txt的两种 ...
随机推荐
- ionic3自定义图标
http://blog.csdn.net/qq993284758/article/details/78107412
- gogole调试请求体的数据怎么知道
在network---->header->request payload中看 详细情况见下图所示:
- 移动端浏览器touch事件的研究总结
$("body").on("touchstart", function(e) { e.preventDefault(); startX = e. ...
- [洛谷P1074] 靶形数独
洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...
- mongoDB文档操作【增删改】
MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 Mo ...
- Linux eject弹出光驱
Linux eject命令用于退出抽取式设备. 若设备已挂入,则eject会先将该设备卸除再退出. 语法 eject [-dfhnqrstv][-a <开关>][-c <光驱编号&g ...
- input button 不能在后台用Enabled
<input type="button" value="上传" class="uploadButton" runat="s ...
- CSS变形
css3 变形/变换 相关属性 transform transform-origin transform-style:flat/preserve-3d perspective: 长度单位 perspe ...
- 3.flume安装以及环境配置
1.安装jdk 我这里已经安装过了,这里就不演示了 2.安装flume 安装cdh版本的,http://archive.cloudera.com/cdh5/cdh/5/ 安装完毕之后,配置环境变量. ...
- C#字节数组的常用解码处理方法
在某些情况下,比如说串口通信或者读取二进制的文件,通常会得到一个byte数组形式的数据. 然而对于这个数据处理常常令人苦恼,因为通常通信情况下,并不是一个字节代表一个字符或者某个数据,而是数据夹杂在字 ...