我如何才能使蟒蛇环境文件可以在其他计算机上使用?
我使用conda env export > environment. YML将我的anaconda python环境导出到YML。导出的环境。Yml包含这个行前缀:/home/superdev/miniconda3/envs/juicyenv,它映射到我的anaconda的位置,这在其他pc上是不同的。
我如何才能使蟒蛇环境文件可以在其他计算机上使用?
我使用conda env export > environment. YML将我的anaconda python环境导出到YML。导出的环境。Yml包含这个行前缀:/home/superdev/miniconda3/envs/juicyenv,它映射到我的anaconda的位置,这在其他pc上是不同的。
当前回答
首先激活你的conda环境(你想要导出/备份的环境)
conda activate myEnv
导出所有包到一个文件(myEnvBkp.txt)
conda list --explicit > myEnvBkp.txt
恢复/导入环境:
conda create --name myEnvRestored --file myEnvBkp.txt
其他回答
Windows用户
打开CMD 激活SpidersEnv conda env export > spidersen .yml 然后浏览用户文件夹并搜索SpidersEnv.yml
这也是备份(导出)环境的另一种方法
Linux或Mac
Conda env export—no-builds | grep -v "prefix" > environment.yml
窗户
Conda env export -no-builds | findstr -v "prefix" > environment.yml
原理:默认情况下,conda env导出包含构建信息:
$ conda env export
...
dependencies:
- backcall=0.1.0=py37_0
- blas=1.0=mkl
- boto=2.49.0=py_0
...
相反,你可以不带构建信息就导出你的环境:
$ conda env export --no-builds
...
dependencies:
- backcall=0.1.0
- blas=1.0
- boto=2.49.0
...
它将环境与Python版本和操作系统解绑定。
到目前为止,我的情况(从x86到arch64)的最佳解决方案: https://github.com/conda/conda/issues/4339#issuecomment-311804578
Conda env export | cut -f 1 -d '=' | grep -v "prefix" > environment.yml
此外,如果您在机器架构(x86_64 > arch64)之间移动 您需要手动调整一些不兼容的包。例如Intel专用的mkl*,ld_impl_linux-64…
我在conda规范中找不到任何允许你在没有前缀的情况下导出环境文件的东西:…线。然而,正如Alex在评论中指出的那样,在从文件创建环境时,conda似乎并不关心前缀行。
考虑到这一点,如果您希望其他用户不知道您的默认安装路径,可以在写入environment.yml之前使用grep删除前缀行。
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
注意,Conda建议创建环境。如果你想跨平台(Windows/Linux/Mac)共享你的环境,这是特别重要的。在这种情况下,可以省略前缀行。
首先激活你的conda环境(你想要导出/备份的环境)
conda activate myEnv
导出所有包到一个文件(myEnvBkp.txt)
conda list --explicit > myEnvBkp.txt
恢复/导入环境:
conda create --name myEnvRestored --file myEnvBkp.txt