更新:2023.04.19
(1)下载慢的时候,添加清华镜像源
pip intall package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
(2)创建conda虚拟环境,安装ipykernel才可以利用jupyter
conda install -n 虚拟环境名 ipykernel --update-deps --force-reinstall
比如我的py38gpu环境安装:
conda install -n py38gpu ipykernel --update-deps --force-reinstall
(3)安装jupyter_server
首先查看安装情况:
jupyter --version
安装:
pip install jupyter_server
pip install jupyterlab
更新:2021.11.25
如果已经迁移好的环境,还需要几个额外的依赖包,此时可以重新在本地的有网环境下装好,然后利用conda pack 迁移,但是一般我们的环境都装了cuda很大,不好随便迁移,所以本次gen更新提供一种新的方法,实现对缺少的几个包的安装。
1、在本地的conda环境中,利用pip 下载需要的依赖包,具体命令如下:
pip download 包名 -d 路径
例:
pip download boto3 -d /root/temp
注意:上述的命令会下载这个包所需要的所有依赖,可能会有几个包,都会下载到/root/temp下边,我们对这个文件夹进行打包,传输到离线服务器,进入对应的conda虚拟环境,解压出来,利用pip 进行安装,如果不知道先安装哪个,可以随便选一个,他会提示你先安装哪个依赖。对离线包的安装方法:
pip install 刚才下载的包名
以上就可以简单的解决,已经迁移好了环境,但是缺少一两个包的情况。
分割线------------------------------------------------------------------------------------------------------------
整体步骤:
1、一般服务器都是linux,多人使用,所以我们一般在服务器上利用docker创建虚拟环境。
(1)首先找一个装好了服务器gpu驱动的镜像,用该镜像在服务器创建一个新容器,并且把该镜像打成tar包,下载到本地。
(2)利用下载好的镜像tar包,创建一个容器,为了保持和服务器的系统一致。
(3)然后当前的容器环境是可以连接网络的,所以我们下载anaconda,并安装,然后利用conda创建python虚拟环境。
(4)在python虚拟环境中在线安装自己项目所需要的包。
(5)将做好的环境进行conda pack,就是把做好的环境打包。
(6)将刚才打包好的python虚拟环境包,上传服务器到刚才创建的容器所挂在的目录,这样在容器中就可以访问当前目录数据了。并上传刚才在本地安装的anaconda安装包到该目录
(7)在docker容器中安装刚才上传的anaconda,利用conda导入刚才上传的python虚拟环境包,
(8)将导入的环境包放到anaconda的环境目录下,就完成了所有的步骤。
(9)在服务器的docker容器中,利用anaconda启动刚才导入的虚拟环境,就可以跑模型了。
(10)可行性分析:服务器的容器中已经装好了显卡的驱动,我们只要装对应的cuda和torch版本就可以实现gpu的使用。因此我们在本地的容器中,创建conda环境,在线安装指定的torch和cuda,以及其他所需要的包,然后迁移到服务器的容器,切换到刚才迁移的conda虚拟环境中,理论上就可以实现gpu的使用,这样就可以很简单的针对不同的项目,创建不同的虚拟环境,在线安装对应的包了。
2、具体细节:
(1)打包服务器镜像。
docker save -o 路径/输出的包名 repository:Tag
(2)在服务器利用刚才的镜像包创建容器
docker run -itd -e LANG="en_US.UTF-8" NVIDIA_VISIBLE_DEVICES=all,NVIDIA_DRIVER_CAPABILITIES=compute --name=容器名 --runtime=nvidia -v 宿主机路径:/temp -p 9900:9900(这两个端口号可以自己写) 镜像名:tag /bin/bash
(3)在本地docker利用下载的镜像包创建容器
docker run -itd -e LANG="en_US.UTF-8" --name=容器名 -v 宿主机路径:/temp -p 9900:9900(这两个端口号可以自己写) 镜像名:tag /bin/bash
(因为服务器的gpu和本地不同,而且本地不需要gpu,就可以创建环境)
(4)在本地进入刚才创建的容器,并安装anaconda
docker exec -it 容器名 /bin/bash
安装anaconda,就是直接找到安装包,即刚才创建容器时所挂在的路径,在/temp就可以看到挂在的本地路径,把anaconda安装包放在这个目录下,在容器的/temp下就可以看到,安装了。具体安装方法和设置环境变量看我的另一篇。anaconda安装和配置环境变量
(5)利用anaconda创建虚拟环境
conda create -n 虚拟环境名字 python=3.7(自选版本)
(6)安装项目需要的包,并打包虚拟环境
安装需要的包,根据需求进行安装,本文不再赘述,以下命令为打包刚才的虚拟环境
#1、安装打包工具
conda install -c conda-forge conda-pack
2、打包环境
conda pack -n 虚拟环境名 -o 包名
3、例如我的虚拟环境为py37,包名为py37.tar.gz
conda pack -n py37 -o py37.tar.gz
(7) 将上一步打包的虚拟环境包上传服务器的docker容器挂在目录,进行解压虚拟环境
1、首先得在服务器的docker容器中上传anaconda安装包进行安装,和上文描述方法一样,不在赘述。
2、在anaconda的虚拟环境路径下,创建要导入到虚拟环境名字的文件夹
mkdir anaconda安装路径/envs/虚拟环境名
3、例如我的py37虚拟环境的安装
mkdir /root/anaconda3/envs/py37
4、解压虚拟包
tar -xzf 虚拟环境的压缩包 -C anaconda的安装路径/envs/虚拟环境名
5、例如我的
tar -xzf py37.tar.gz -C /root/anaconda3/envs/py37
(8)查看是否安装成功虚拟环境
conda info --envs
完成