迁移anaconda虚拟环境到新服务器+解决迁移后pip无法使用
1. 迁移anaconda虚拟环境到新服务器
如果你有一个台机A不能联网,另一台机B可以联网,但需要在不能联网的A上运行代码,需要一些库。那么可以在A上离线安装Anaconda,在B上配置上虚拟环境,移动到A上。
-
安装Ananconda,官网下载安装包,ssh传到A上并安装,同时B也应该安装好,两机anaconda安装包无需一致,但需要同类系统(Linux or Win)。
-
在B上创建虚拟环境
py36
(取名随意),在虚拟环境中安装需要的库。 -
前往B的anaconda目录,找到
envs
文件夹,对py36
文件夹进行压缩。tar -czvf py36.tar.gz py36
-
将压缩包传输到A,解压,放至
anaconda/envs
目录下。
2. 解决迁移后pip无法使用
这一步完成后,基本上你需要的库都安装在A机上了,但是!如果你又加上了其他的项目,有1,2个库需要安装怎么办呢?
- 1 先使用
pip download <package_names>
,在有网络的机子(B)上下载,库安装包,然后上传到A上。 - 1.1 比如
opencv
,pip download opencv-python
,得到文件opencv_python-4.2.0.32-cp36-cp36m-manylinux1_x86_64.whl
上传至A。 - 2 这时在A上切换虚拟环境,
pip install opencv_python-4.2.0.32-cp36-cp36m-manylinux1_x86_64.whl
进行安装。 - 2.1 这里会报一个错误
-bash: /home/computer_a/anaconda3/envs/torch/bin/pip: /home/computer_b/anaconda3/envs/torch/bin/python: bad interpreter: No such file or directory
。这是因为A机的pip
路径是拷贝过来的,还是原来B机的python
路径,修改即可。 - 2.2 方法:打开
/home/computer_a/anaconda3/envs/torch/bin/pip
,将第一行路径改为/home/computer_a/anaconda3/envs/torch/bin/python
。
如果不只是移动一个虚拟环境,而是将一个设备上anaconda或miniconda的文件夹拷贝到这台机器上,或者是将本机器原始的anaconda拷贝到新的目录。则除了2.2的修改外,还需要:
- 注意bashrc中相关的地址需要更改
- conda命令的地址更改,打开
/home/computer_a/anaconda3/bin/conda
从原有的
#!/home/OLD/anaconda3/bin/python
修改为
#!/home/NEW/anaconda3/bin/python
参考