Anaconda导出环境文件

时间:2016-12-22 00:19:52

标签: python python-3.x anaconda conda

如何创建可在其他计算机上使用的anaconda环境文件?

我使用conda env export > environment.yml将我的anaconda python环境导出到YML。导出的environment.yml包含此行prefix: /home/superdev/miniconda3/envs/juicyenv,该行映射到我的anaconda的位置,该位置在其他个人电脑上会有所不同。

7 个答案:

答案 0 :(得分:88)

我在conda规范中找不到任何允许您导出没有prefix: ...行的环境文件的内容。但是,作为注释中的Alex pointed out,conda在从文件创建环境时似乎并不关心前缀行。

考虑到这一点,如果您希望其他用户不知道您的默认安装路径,可以在写入grep之前删除带有environment.yml的前缀行。

conda env export | grep -v "^prefix: " > environment.yml

无论哪种方式,其他用户都会运行:

conda env create -f environment.yml

并且环境将安装在其默认的conda环境路径中。

如果要为系统指定不同的安装路径(与environment.yml中的'prefix'无关),只需使用-p标志,后跟所需的路径。

conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name

答案 1 :(得分:21)

从要安装在另一台计算机上的环境中保存软件包的最简单方法是:

$ conda list -e > req.txt

然后您可以使用来安装环境

$ conda create -n new environment --file req.txt

如果您使用pip,请使用以下命令:参考https://pip.pypa.io/en/stable/reference/pip_freeze/

$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt

答案 2 :(得分:4)

  1. 首先激活您的conda环境(您要导出/备份的环境)
conda activate myEnv
  1. 将所有软件包导出到文件(myEnvBkp.txt)
conda list --explicit > myEnvBkp.txt
  1. 还原/导入环境:
conda create --name myEnvRestored --file myEnvBkp.txt

答案 3 :(得分:1)

无需构建即可导出环境:

conda env export --no-builds | grep -v "prefix" > environment.yml

答案 4 :(得分:1)

对我来说,Conda 给出的程序有效:

https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment

但前提是在 anaconda 提示符/控制台中执行。

VSCode 终端只生成了一个 yml 文件,其中包含我的环境路径,但没有明确的依赖项中的包列表。

答案 5 :(得分:0)

我发现仅以字符串格式导出软件包比导出整个conda环境更方便。正如前面的答案已经建议的那样:

$ conda list -e > requirements.txt

但是,此requirements.txt包含内部版本号,这些版本号在操作系统之间是不可移植的,例如在MacUbuntu之间。在conda env export中,我们有选项--no-builds,但没有conda list -e,因此,我们可以通过发出以下命令来删除内部版本号:

$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt 

然后在另一台计算机上重新创建环境:

conda create -n recreated_env --file requirements.txt 

答案 6 :(得分:-1)

首先激活您的 conda 环境

conda activate myenv

然后你只需要运行这个命令

conda env export > environment.yml