迁移虚拟环境

师兄的一篇博客很有帮助,转载一下。

因为创建的虚拟环境是在各自的home下面,但是,home的大小是固定的,现在使用的人太多,需要将环境进行迁移。

整个背景是ubuntu16.04

假设用户是aaa ,那么

1
2
cd ~
ls -lah

可以发现有下面的文件和文件夹

1
2
.conda
.condarc

其中.conda是放置虚拟环境的,.condarc是配置文件。

.conda

这个文件夹里面存放着

environments.txt
envs
pkgs
其中,environments.txt是各个环境的指向。

cat environments.txt
/home/aaa/.conda/envs/py27
/home/aaa/.conda/envs/py36
然后 envs存放着我们弄的那些环境,pkgs存放的是各种第三方库。

我们运行

1
conda info

里面有一部分是

1
2
3
4
   package cache : /Users/aaa/anaconda3/pkgs
/Users/aaa/.conda/pkgs
envs directories : /Users/aaa/anaconda3/envs
/Users/aaa/.conda/envs

我们先做的第一步就是先把之前的那些环境迁移出去。

假设/data足够大,我们创建下面的路径

1
/data/aaa/.conda

然后将

1
2
mv ~/.conda/envs /data/aaa/.conda
mv ~/.conda/pkgs /data/aaa/.conda

迁出去之后,我们要修改 environment.txt 将内容换成

1
2
/data/aaa/.conda/envs/py27
/data/aaa/.conda/envs/py36

然后

1
2
cd ~
vim .condarc

修改配置信息,添加

1
2
3
4
envs_dirs:
- /data/aaa/.conda/envs
pkgs_dirs:
- /data/aaa/.conda/pkgs

再次执行conda info

1
2
3
4
5

package cache : /Users/aaa/anaconda3/pkgs
/data/aaa/.conda/pkgs
envs directories : /Users/aaa/anaconda3/envs
/data/aaa/.conda/envs

至此,迁移成功。

但是,虽然迁移成功,但是进入虚拟环境的时候,pip的时候会出错。

1
bad interpreter: No such file or directory

这是因为,我们需要把环境指向编译器。

假设我们把

原来位置上的py3.7移动到了/data/aaa/.conda/envs/py3.7中。

我们

1
2
cd /data/aaa/.conda/envs/py3.7/bin
vim pip

我们在#!中添加

1
/data/aaa/.conda/envs/py3.7/bin/python

下面是一个例子。

——————————————————————————————————————————

转载自anaconda | 迁移虚拟环境