背景
训练服务器为了安全起见,限制不能联网,无法直接创建虚拟环境及安装模型的依赖库,所以需要把另一台测试服务器已经部署好的虚拟环境迁移到训练服务器上,并在不能联网的情况下安装一些离线包。过程记录如下记录。
一、环境迁移
- 进入部署好的虚拟环境的测试服务器,并激活要迁移的环境,我这里的环境名为TSAD,所以相应的激活命令为:
conda activate TSAD
- 在TSAD环境下安装pack包
pip install conda-pack
- 在TSAD环境下进行打包,打包完成后会在当前目录下生成一个 tar.gz 文件
conda pack -n TSAD
- 进入到训练服务器虚拟环境文件夹下,并新建环境文件夹。
比如我的anaconda3的环境变量路径为:/opt/anaconda3/envs/,则:
cd /opt/anaconda3/envs/
mkdir TSAD
cd TSAD
- 将打包好的环境压缩包放到/opt/anaconda3/envs/TSAD目录下并解压:
tar -xzvf TSAD.tar.gz
- 解压完毕后,就可以激活环境正常使用了。
二、离线包下载与安装
- 在测试服务器(能联网)上下载matplotlib包:
pip download matplotlib==3.6.0 --dest=<下载到地址> -i
https://pypi.tuna.tsinghua.edu.cn/simple
- 将下载好的离线包放到训练服务器并安装
pip install --no-index --find-links=<离线包路径> *.whl
三、可能会出现的问题
这里我的测试服务器和训练服务器都是liunx,python都是3.8;如果在windows上下载或者python版本不一样,可能安装时会报错:
xxx is not a supported wheel on this platform
如果出现了上述问题,可参考:
https://blog.csdn.net/happylele77/article/details/134707428
https://blog.csdn.net/lovedingd/article/details/126886431
https://blog.csdn.net/happywlg123/article/details/107281936/
但个人更建议保证下载和安装的服务器都是同系统和同python环境的,这样会更简便,如果下载和安装的服务器是不同系统,按照上述连接的方法比较麻烦而且还有可能会出现下载失败的情况。