Lau*_*Lau 92 python python-3.x anaconda conda
如何制作可在其他计算机上使用的anaconda环境文件?
我使用了将anaconda python环境导出到YML conda env export > environment.yml
.导出environment.yml
包含这一行prefix: /home/superdev/miniconda3/envs/juicyenv
,它映射到我的anaconda的位置,这将在其他的PC上不同.
And*_*Guy 124
我在conda
规范中找不到任何允许您导出没有该prefix: ...
行的环境文件的内容.但是,正如Alex在评论中指出的那样,从文件创建环境时,conda似乎并不关心前缀行.
考虑到这一点,如果您希望其他用户不知道您的默认安装路径,您可以grep
在写入之前删除前缀行environment.yml
.
conda env export | grep -v "^prefix: " > environment.yml
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,其他用户然后运行:
conda env create -f environment.yml
Run Code Online (Sandbox Code Playgroud)
并且环境将安装在其默认的conda环境路径中.
如果要指定与系统的默认路径不同的安装路径(与environment.yml中的'prefix'无关),只需使用-p
标志后跟所需的路径.
conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name
Run Code Online (Sandbox Code Playgroud)
Ily*_*yas 35
Linux
conda env export --no-builds | grep -v "前缀" > environment.yml
视窗
conda env export --no-builds | findstr -v "前缀" > environment.yml
理由:默认情况下,conda env export
包括构建信息:
$ conda env export
...
dependencies:
- backcall=0.1.0=py37_0
- blas=1.0=mkl
- boto=2.49.0=py_0
...
Run Code Online (Sandbox Code Playgroud)
您可以在没有构建信息的情况下导出您的环境:
$ conda env export --no-builds
...
dependencies:
- backcall=0.1.0
- blas=1.0
- boto=2.49.0
...
Run Code Online (Sandbox Code Playgroud)
这将环境与 Python 版本和操作系统结合起来。
jav*_*vac 31
从要安装在另一台计算机中的环境中保存包的最简单方法是:
$ conda list -e > req.txt
Run Code Online (Sandbox Code Playgroud)
然后你可以使用安装环境
$ conda create -n new environment --file req.txt
Run Code Online (Sandbox Code Playgroud)
如果您使用pip
,请使用以下命令:参考https://pip.pypa.io/en/stable/reference/pip_freeze/
$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
Edu*_*ido 22
首先激活您的 Conda 环境(下面,myenv 是环境的假定名称)。
conda activate myenv
Run Code Online (Sandbox Code Playgroud)
然后你只需要运行这个命令
conda env export > environment.yml
Run Code Online (Sandbox Code Playgroud)
请注意,您可以将environment.yml 替换为您选择的任何其他文件名。
conda activate myEnv
Run Code Online (Sandbox Code Playgroud)
conda list --explicit > myEnvBkp.txt
Run Code Online (Sandbox Code Playgroud)
conda create --name myEnvRestored --file myEnvBkp.txt
Run Code Online (Sandbox Code Playgroud)
我发现仅以字符串格式导出包比导出整个conda
环境更具可移植性。正如之前的答案已经建议的那样:
$ conda list -e > requirements.txt
Run Code Online (Sandbox Code Playgroud)
但是,这requirements.txt
包含在操作系统之间不可移植的内部版本号,例如在Mac
和之间Ubuntu
。在conda env export
我们有选项--no-builds
但没有 with conda list -e
,所以我们可以通过发出以下命令来删除内部版本号:
$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt
Run Code Online (Sandbox Code Playgroud)
并在另一台计算机上重新创建环境:
conda create -n recreated_env --file requirements.txt
Run Code Online (Sandbox Code Playgroud)