因为创建的虚拟环境是在各自的 home 下面,但是,home 的大小是固定的,现在使用的人太多,需要将环境进行迁移。
整个背景是 ubuntu16.04。
假设用户是 aaa ,那么
cd ~
ls -lah可以发现有下面的文件和文件夹
.conda
.condarc其中 .conda 是放置虚拟环境的,.condarc 是配置文件。
.conda
这个文件夹里面存放着
- environments.txt
- envs
- pkgs
其中,environment.txt 是各个环境的指向。
cat environment.txt
/home/aaa/.conda/envs/py27
/home/aaa/.conda/envs/py36然后 envs 存放着我们弄的那些环境,pkgs 存放的是各种第三方库。
我们运行
conda info里面有一部分是
package cache : /Users/aaa/anaconda3/pkgs
/Users/aaa/.conda/pkgs
envs directories : /Users/aaa/anaconda3/envs
/Users/aaa/.conda/envs我们先做的第一步就是先把之前的那些环境迁移出去。
假设 /data 足够大,我们创建下面的路径
/data/aaa/.conda然后将
mv ~/.conda/envs /data/aaa/.conda
mv ~/.conda/pkgs /data/aaa/.conda迁出去之后,我们要修改 environment.txt 将内容换成
/data/aaa/.conda/envs/py27
/data/aaa/.conda/envs/py36然后
cd ~
vim .condarc修改配置信息,添加
envs_dirs:
- /data/aaa/.conda/envs
pkgs_dirs:
- /data/aaa/.conda/pkgs再次执行 conda info
package cache : /Users/aaa/anaconda3/pkgs
/data/aaa/.conda/pkgs
envs directories : /Users/aaa/anaconda3/envs
/data/aaa/.conda/envs至此,迁移成功。
但是,虽然迁移成功,但是进入虚拟环境的时候,pip 的时候会出错。
bad interpreter: No such file or directory这是因为,我们需要把环境指向编译器。
假设我们把
原来位置上的 py3.7 移动到了 /data/aaa/.conda/envs/py3.7 中。
我们
cd /data/aaa/.conda/envs/py3.7/bin
vim pip我们在 #! 中添加
/data/aaa/.conda/envs/py3.7/bin/python下面是一个例子。
