因学校的高算平台无法联网,因此无法在线下载MMSegmentaion虚拟环境。因此,采用本地Python虚拟环境迁移至高算的方式来安装MMSegmentaion虚拟环境。
前提准备:源主机(自己的电脑)和目标主机(高算平台)必须具有相同的平台和操作系统,即首先,需要在本地Linux系统配置好虚拟环境;同时本地Linux主机和高算平台安装的miniconda版本必须一致;
1. 在本地基环境中(base)安装离线打包工具Conda-pack。
pip install conda-pack
2. 先将当前路径跳转到虚拟环境所在位置:miniconda/envs/。然后运行以下的命令进行打包:
conda pack -n my_mmseg -o my_mmseg.tar.gz
我的环境名称为my_mmseg,将它打包成名为my_mmseg.tar.gz的压缩包。
注意:我在用上条命令打包时报错了
CondaPackError: Cannot pack an environment with editable packages
我在这使用了下面的命令,忽略了一些依赖其他编译环境的包,忽略的包后续再安装。
conda pack -n my_mmseg --ignore-editable-packages
有的网友说环境迁移还有几种其他的方法,这个我都没有试过,不知道行不行,应该也可以。
3. 将打包好的环境压缩包my_mmseg.tar.gz利用JHFileClient上传至服务器,保存至miniconda/envs/下。
4.右键将my_mmseg.tar.gz压缩包解压至当前文件夹。
5. 修改新建的环境的文件权限。
chmod 777 -R my_mmseg
6. 检查解压后的python环境是否正常。
#列命令若正常进入python命令窗则表明正常
./my_mmseg/bin/python
#退出python命令窗
exit()
7. 检查环境是否成功添加。
conda env list#命令检查是否添加成功此环境
conda activate my_mmseg #激活
8. 检查my_mmseg环境中的包有无缺少(发现MMSegmention这个包缺少,我猜MMSegmention是依赖其他编译环境的包,因此在打包时没有打包)
9. 单独安装MMSegmention。先在本地电脑打开github,把MMSegmention的压缩包下载下来,解压后,上传到服务器用户家目录的files中。
注:这里的MMSegmention必须是从github上下载下来的源码(或者没有被pip install -v -e.)。
10. 在终端cd进入上述路径,然后运行以下指令,安装MMSegmention。
pip install -v -e .
11. 进入迁移的环境,查看所迁移的包都有哪些。
可以看到MMCV、MMSegmention、Opencv,Pytorch等均已迁移成功。
注意:这里的Pytorch是GPU版本的。经测试,服务器不需要再单独安装CUDA和CUDNN,Pytorch就可以调用CUDA加速。
配置好上述环境后,满心欢喜的想开始测试下环境能用不,运行MMSegmention/demo/demo.py。
结果出现了以下错误:
经查询,提示我Pytorch的CUDA版本太低了(10.2),不满足显卡的要求。
无奈,又把环境中原来cuda10.2版本的Pytorch,Torchvision,Torchaudio全部卸载掉,离线安装(whl)了CUDA11.3的Pytorch,Torchvision,Torchaudio(自身版本没变,只是安装了CUDA11.3版本的)。注意:如果卸载不掉,就只能在本地linux虚拟环境中重新配一个满足条件的环境,按照上述步骤重新迁移。学校服务器不能上网,配置环境确实很麻烦。
切换重新配好的环境后,再次运行demo.py,安装成功!