如何创建可在其他计算机上使用的anaconda环境文件?
我使用conda env export > environment.yml
将我的anaconda python环境导出到YML。导出的environment.yml
包含此行prefix: /home/superdev/miniconda3/envs/juicyenv
,该行映射到我的anaconda的位置,该位置在其他个人电脑上会有所不同。
答案 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)
conda activate myEnv
conda list --explicit > myEnvBkp.txt
conda create --name myEnvRestored --file myEnvBkp.txt
答案 3 :(得分:1)
无需构建即可导出环境:
conda env export --no-builds | grep -v "prefix" > environment.yml
答案 4 :(得分:1)
对我来说,Conda 给出的程序有效:
但前提是在 anaconda 提示符/控制台中执行。
VSCode 终端只生成了一个 yml 文件,其中包含我的环境路径,但没有明确的依赖项中的包列表。
答案 5 :(得分:0)
我发现仅以字符串格式导出软件包比导出整个conda
环境更方便。正如前面的答案已经建议的那样:
$ conda list -e > requirements.txt
但是,此requirements.txt
包含内部版本号,这些版本号在操作系统之间是不可移植的,例如在Mac
和Ubuntu
之间。在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