- environment.yaml
- requirements.txt
所谓虚拟环境可以理解为:通过软件控制达到不同环境的虚拟切换,而不限于唯一的真实安装环境。所以自然可以实现不同的版本的包共存,只需要用虚拟环境将其分开。也就是:一台机器上通过虚拟环境控制不同版本 python,不同版本的 pytorch等等,有点像系统镜像实现了多系统共存在一个实体机器里面。
为了实现虚拟环境的完美复制,请先使用environment.yaml再使用requirements.txt,不要落下任何一个。
environment.yaml通过conda存储已有环境到environment.yaml文件中
conda env export > environment.yaml
通过conda创建该环境:
conda env create -f environment.yaml
.yaml文件只储存了环境中用conda install等命令安装的包,而没有存储用pip之类安装的包,因此要求配合以下requirements.txt的安装方式一起使用,才能移植虚拟环境。
requirements.txt通过pip存储已有环境到requirements.txt文件中
pip freeze > requirements.txt
通过pip安装该环境:
# 创建环境依赖:通过requirements.txt内包(主要是torch、torchvision等)的版本确定python的版本号 # conda create -nanaconda python=<3.6> # 删除环境: conda [env] remove -n --all conda create -n python=3.6 # (可忽略,而直接激活.yaml文件头提到的环境名称) source activate # 激活新建的虚拟环境 # pip 安装环境 pip install -r requirements.txt # 或者使用 conda 安装环境 conda install --file requirements.txt
以上用pip安装环境时,只对当前环境使用的 python 安装指定包,当其他环境为此版本python安装了其他版本的指定包时,就会出现错误。
以上用conda安装环境时,会检索并解决包依赖问题,但是下载速度很慢。
离线安装
- 创建一个新环境并激活
- 从https://anaconda.org/anaconda/repo下载相关包(*.bz2)并移到不能上网的服务器
- 使用conda install .进行安装,比如说:conda install python-3.6.4-hc3d631a_1.tar.bz2,其中python-3.6.4-hc3d631a_1.tar.bz2存在当前路径下
- 验证是否安装成功conda list python



