文章目录
- 简介
- requirements.txt
- environment.yml
- 小结
简介
最近安装了一些从github上clone下载的开源python软件包,经历了许许多多的酸甜苦辣。在python软件包,通常都会包含requirements.txt, environment.yml, setup.py三者之中某些或者全部,一开始完全不知道都是啥东东,通常都是遵照安装指示傻傻地一步一步走。但是久病成医,查阅了一些网上相关的资源逐渐也(自以为)明白了它们是咋回事。本文做一个简单的总结,不过这些只是小白的入门级的求生指南总结(所以不会包含高级使用相关的内容),如有错漏偏误欢迎指正-
简而言之,requirements.txt, environment.yml是同一类的东西,它们提供的是当前软件包安装运行所需要的环境或者依赖信息,即这些东西的安装是当前软件包安装和运行的前提条件。这些信息相当于是开发者给使用者提供的用于恢复自己开发时的环境的信息。 setup.py跟以上两者是完全不一样的,它就是用于安装当前软件包自身的安装脚本。这个要更加复杂一些,不在本文描述范围。
requirements.txt
requirements.txt的生成(开发者写的)用pip freeze命令,安装时使用也需要用pip命令,pip生成的requirements.txt用conda install无法识别。如下例所示:
pip freeze > requirements.txt # 生成requirements.txt
pip install -r requirements.txt # 从requirements.txt安装依赖
内容:以下为一个(我正在鼓捣的一个包的)requirements.txt示例,当然这里并没有包含requirements.txt所有可能的语法要素(一般的像我这样的菜鸟也管不了这些),知道以上两个命令在大部分情况下足以生活自理了-。如果用"=="的话是指定了一个特定版本的包,而用“>=”则表示只要不低于这个版本就可以了,简明易懂。
gym>=0.14.0
jupyter>=1.0.0
numpy>=1.16.4
pandas>=0.24.2
scipy>=1.3.0
scikit-learn>=0.21.2
matplotlib>=3.1.0
-e git+https://github.com/ntasfi/PyGame-Learning-Environment.git#egg=ple
-e git+https://github.com/lusob/gym-ple.git#egg=gym-ple
h5py>=2.9.0
pygame>=1.9.6
tqdm>=4.32.1
environment.yml
environment.yml是用conda命令将环境信息导出备份的文件。
创建命令如下:
conda env export > environment.yml
软件安装时则执行以下命令就可以恢复其运行环境和依赖包:
conda env create -f environment.yml
注1: .yml文件移植过来的环境只是安装了你原来环境里用conda install等命令直接安装的包,你用pip之类装的东西没有移植过来,需要你重新安装。–待确认。
注2: environment.yml中包含该文件创建时所在的虚拟环境名称,不需要先执行"conda env create"创建并进入虚拟环境,直接在base环境下执行就会自动创建虚拟环境以及安装其中的依赖包(这个是与pip install -r requirements.txt不同的)。当然这就要求你的当前环境中没有同名的虚拟环境。如果暗装者不想使用environment.yml中内置的虚拟环境名(在environment.yml的第一行),可以使用-n选项来指定新的虚拟环境名,如下所示:
conda env create -f environment.yml -n new_env_name
environment.yml长得什么样子呢?如下是一个示例:
小结
https://blog.csdn.net/chenxy_bwave/article/details/121187923