华为云AI开发平台ModelArts基于SFS创建、迁移和管理Conda虚拟环境_云淘科技

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

步骤如下:

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

前提条件

创建一个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”为举例,请以用户实际的安装路径为准。

刷新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

父主题: 开发环境

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家