九游平台/ ai开发平台modelarts/ 最佳实践/ / 将notebook的conda环境迁移到sfs磁盘
更新时间:2024-08-17 gmt 08:00

将notebook的conda环境迁移到sfs磁盘-九游平台

本文介绍了如何将notebook的conda环境迁移到sfs磁盘上。这样重启notebook实例后,conda环境不会丢失。

步骤如下:

  1. 创建新的虚拟环境并保存到sfs目录
  2. 克隆原有的虚拟环境到sfs盘
  3. 重新启动镜像激活sfs盘中的虚拟环境
  4. 保存并共享虚拟环境

前提条件

创建一个notebook,“资源类型”选择“专属资源池”“存储配置”选择“sfs弹性文件服务器”,打开terminal。

创建新的虚拟环境并保存到sfs目录

创建新的conda虚拟环境。

# shell
conda create --prefix /home/ma-user/work/envs/user_conda/sfs-new-env python=3.7.10 -y

查看现有的conda虚拟环境,此时可能出现新创建的虚拟环境的名称为空的情况。

# shell
conda env list
# conda environments:
#
base                     /home/ma-user/anaconda3
pytorch-1.8              /home/ma-user/anaconda3/envs/pytorch-1.8
python-3.7.10         *  /home/ma-user/anaconda3/envs/python-3.7.10
                         /home/ma-user/work/envs/user_conda/sfs-new-env

添加新创建的虚拟环境到conda env。

# shell
conda config --append envs_dirs /home/ma-user/work/envs/user_conda/

查看现有的conda虚拟环境,此时新的虚拟环境已经能够正常显示,可以直接通过名称进行虚拟环境的切换。

# shell
conda env list
conda activate sfs-new-env
# conda environments:
#
base                     /home/ma-user/anaconda3
pytorch-1.8              /home/ma-user/anaconda3/envs/pytorch-1.8
python-3.7.10         *  /home/ma-user/anaconda3/envs/python-3.7.10
sfs-new-env              /home/ma-user/work/envs/user_conda/sfs-new-env

(可选)将新建的虚拟环境注册到jupyterlab kernel(可以在jupyterlab中直接使用虚拟环境)。

# shell
pip install ipykernel
ipython kernel install --user --name=sfs-new-env
rm -rf /home/ma-user/.local/share/jupyter/kernels/sfs-new-env/logo-*

说明:此处“.local/share/jupyter/kernels/sfs-new-env”为举例,请以用户实际的安装路径为准。

图1 安装路径回显

刷新jupyterlab页面,可以看到新的kernel。

重启notebook后kernel需要重新注册。

克隆原有的虚拟环境到sfs盘

# shell
conda create --prefix /home/ma-user/work/envs/user_conda/sfs-clone-env --clone pytorch-1.8 -y
source:      /home/ma-user/anaconda3/envs/pytorch-1.8
destination: /home/ma-user/work/envs/user_conda/sfs-clone-env
packages: 20
files: 39687
preparing transaction: done
verifying transaction: done
executing transaction: done
#
# to activate this environment, use
#
#     $ conda activate /home/ma-user/work/envs/user_conda/sfs-clone-env
#
# to deactivate an active environment, use
#
#     $ conda deactivate

查看新创建的clone虚拟环境,如果出现新创建的虚拟环境的名称为空的情况,可以参考添加新创建到虚拟环境到conda env

# shell
conda env list
# conda environments:
#
base                     /home/ma-user/anaconda3
pytorch-1.8              /home/ma-user/anaconda3/envs/pytorch-1.8
python-3.7.10            /home/ma-user/anaconda3/envs/python-3.7.10
sfs-clone-env            /home/ma-user/work/envs/user_conda/sfs-clone-env
sfs-new-env           *  /home/ma-user/work/envs/user_conda/sfs-new-env

(可选)将新建的虚拟环境注册到jupyterlab kernel(可以在jupyterlab中直接使用虚拟环境)

# shell
pip install ipykernel
ipython kernel install --user --name=sfs-clone-env
rm -rf /home/ma-user/.local/share/jupyter/kernels/sfs-clone-env/logo-*

说明:此处“.local/share/jupyter/kernels/sfs-clone-env”为举例,请以用户实际的安装路径为准。

刷新jupyterlab页面,可以看到新的kernel。

重新启动镜像激活sfs盘中的虚拟环境

方法一,直接使用完整conda env路径。

# shell
conda activate /home/ma-user/work/envs/user_conda/sfs-new-env

方法二,先添加虚拟环境到conda env,然后使用名称激活。

# shell
conda config --append envs_dirs /home/ma-user/work/envs/user_conda/
conda activate sfs-new-env

方法三,直接使用完成虚拟环境中的python或者pip。

# shell
/home/ma-user/work/envs/user_conda/sfs-new-env/bin/pip list
/home/ma-user/work/envs/user_conda/sfs-new-env/bin/python -v

保存并共享虚拟环境

将要迁移的虚拟环境打包。

# shell
pip install conda-pack
conda pack -n sfs-clone-env -o sfs-clone-env.tar.gz --ignore-editable-packages
collecting packages...
packing environment at '/home/ma-user/work/envs/user_conda/sfs-clone-env' to 'sfs-clone-env.tar.gz'
[########################################] | 100% completed |  3min 33.9s

解压到sfs目录。

# shell
mkdir /home/ma-user/work/envs/user_conda/sfs-tar-env
tar -zxvf sfs-clone-env.tar.gz -c /home/ma-user/work/envs/user_conda/sfs-tar-env

查看现有的conda虚拟环境。

# shell
conda env list
# conda environments:
#
base                     /home/ma-user/anaconda3
pytorch-1.8           *  /home/ma-user/anaconda3/envs/pytorch-1.8
python-3.7.10            /home/ma-user/anaconda3/envs/python-3.7.10
sfs-clone-env            /home/ma-user/work/envs/user_conda/sfs-clone-env
sfs-new-env              /home/ma-user/work/envs/user_conda/sfs-new-env
sfs-tar-env              /home/ma-user/work/envs/user_conda/sfs-tar-env
test-env                 /home/ma-user/work/envs/user_conda/test-env

相关文档

网站地图