文章目录
- 1. 场景
- 2. 解决方案
- 2.1 方案一:直接将打包,然后将包传输到另外一台服务器
- 2.2 方案二:导出环境所有的包名及版本,然后重新安装
1. 场景
我们有时候需要把一个虚拟环境迁移到别的服务器上面去,这时候,我们有多种办法可以解决。
2. 解决方案
2.1 方案一:直接将打包,然后将包传输到另外一台服务器
Step1: 虚拟环境包传输
例如,我现在有个命名为OCR的虚拟环境包,那么在我的Anaconda安装目录下会有一个envs目录:
这里就可以大力出奇迹:将你需要的环境包直接传输至另一台服务器的anaconda/envs/目录下,至于文件在服务器之间传输的教程,可参考我的另外一篇博客:linux服务器之间传输数据
Step2:修改新服务器虚拟环境包pip的路径
在新服务器中的传输过来的虚拟环境包的bin目录下有个pip文件:
使用vim pip命令,修改里面第一行的路径:
#!//data/greatwall03/anaconda3/envs/test/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
修改上面类似代码的第一行路径!
Step3: 更新环境
使用如下命令更下一下环境:
source ~/.bashrc
在重新激活所需环境即可。但这种方法有些麻烦!
2.2 方案二:导出环境所有的包名及版本,然后重新安装
Step1: 导出虚拟环境的信息
将但前环境使用conda activate 切换为需要转移的环境,然后使用如下命令,导出环境的各项安装包:
conda env export > environment.yml
命令执行完后,会生成一个environment.yml文件,导出的文件如下所示:
里面就包含各种安装包的名字及版本。
Step2: 在新的服务器里面重新弄安装环境
根据上述的environment.yml文件重新安装环境,命令如下:
conda env create -f environment.yml
本节完!