目录
一、requirements.txt/requirements.yml文件用法与区别
1. requirements.txt/requirements.yml文件作用及用法
(1) requirements文件中包含了整个项目运行所需要的依赖包以及在开发过程中所使用的包的版本号(版本号必须要有,因为有些依赖包更新后,命令可能会变)。
(2)当整个项目在其他电脑上进行运行时,则需要重新配置相应的环境,这时requirements文件就起了巨大作用。有时候在Github上下载项目时,则需要用到这个文件重新搭建项目运行环境。
2. 区别
requirements.txt/requirements.yml是两个创建python项目运行的文件,目标是一致的,但使用过程有点区别。
(1)生成requirements.txt文件需要安装相应的依赖包才能执行,并且运行.txt文件创建项目环境下的依赖包需要在一个已经创建好的环境下进行;而requirements.yml文件不需要安装相应的依赖包,可直接在cmd.exe下执行,创建项目环境也可以直接在cmd.exe下创建,这是因为.yml文件中包含了项目运行的环境名称,依赖包名称,因此可自动创建项目环境;
(2)运行.yml需要电脑已经安装了Anaconda软件才行,.txt文件不需要;
(3)安装/生成.txt速度略快于安装/生成.yml文件。
二、生成requirements.txt 文件
1. 手动生成(强烈不建议)
自己根据自己的项目中所导入的包进行编写requirements文件,但是这样非常耗时,而且这样无法保证该项目所有的包你都写进去了,详情可见【常见问题】已解决 ModuleNotFoundError: No module named ‘frontend‘
2. pip freeze方法(一般建议)
这种方法为什么一般建议呢?因为这种方法只适用于该项目在单独的开发环境下,即独立的虚拟环境(怎么创建详见:【Python基础000】Anaconda+Pycharm让Python开发直接起飞 ),不然的话使用该命令生成的requirements文件会包含许多不是这个项目所依赖的包。
在当前路径下生成requirements.txt:
pip freeze > requirements.txt
生成指定路径的requirements.txt:
pip freeze > D:/envs/requirements.txt
3. 安装pipreqs(推荐)
pipreqs第三方库可以自动识别该项目所依赖的包及版本号,生成requirements文件,就不用考虑该项目是否在独立的虚拟环境进行开发的,极大的提高了项目迁移与重建的效率。
安装
pip install pipreqs
使用
pipreqs ./ --encoding=utf-8 --force
./ 在当前目录下生成
–encoding=utf-8 保存内容用utf-8编码
–force 若requirements文件存在,强制覆盖
三、生成requirements.yml文件
在当前环境下生成 requirements.yml
conda env export > requirements.yml
四、使用requirement文件生成环境
(1)使用requiremens.txt文件创建项目环境
pip install -r requirements.txt
(2)使用requirements.yml文件创建项目环境
conda env create -f environments.yml