Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ ModelArts/ Prácticas recomendadas/ Notebook/ Creación, migración y gestión de entornos virtuales de Conda basados en SFS
Actualización más reciente 2024-09-20 GMT+08:00

Creación, migración y gestión de entornos virtuales de Conda basados en SFS

En este tema se describe cómo migrar el entorno de Conda de una instancia de notebook a un disco de SFS. De esta manera, el entorno de Conda no se perderá después de reiniciar la instancia de notebook.

El procedimiento es el siguiente:

  1. Crear un entorno virtual y guardarlo en el directorio de SFS
  2. Clonación de los entornos virtuales existentes en el disco de SFS
  3. Reinicio de la imagen para activar el entorno virtual en el disco de SFS
  4. Guardar y compartir el entorno virtual

Requisitos previos

Ha creado una instancia de notebook configurando Resource Type en Dedicated resource pool y Storage en SFS y abierto el terminal.

Crear un entorno virtual y guardarlo en el directorio de SFS

Crear un entorno virtual de conda.

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

Consulte los entornos virtuales de conda existentes. El nombre del entorno virtual recién creado puede estar vacío en la salida.

# 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

Agregue el nuevo entorno virtual a conda envs.

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

Consulte los entornos virtuales de conda existentes. El nuevo entorno virtual se muestra correctamente y puede cambiar a él por su nombre.

# 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

(Opcional) Registre el nuevo entorno virtual con JupyterLab kernel para poder utilizarlo directamente en 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-*

Nota: .local/share/jupyter/kernels/sfs-new-env se utiliza solo como ejemplo. Hágalo con la ruta de instalación real.

Actualice la página de JupyterLab. Se muestra el nuevo kernel.

Una vez reiniciada la instancia de notebook, es necesario volver a registrar el kernel.

Clonación de los entornos virtuales existentes en el disco de 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

Consulte los entornos virtuales clonados. Si el nombre del entorno virtual recién creado está vacío, maneje el problema según Agregue el nuevo entorno virtual al conda envs.

# 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

(Opcional) Registre el nuevo entorno virtual con JupyterLab kernel para poder utilizarlo directamente en 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-*

Note: .local/share/jupyter/kernels/sfs-clone-env is used as an example only. Replace it with the actual installation path.

Actualice la página de JupyterLab. Se muestra el nuevo kernel.

Reinicio de la imagen para activar el entorno virtual en el disco de SFS

Método 1: Utilice la ruta completa de conda env.

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

Método 2: Agregue el entorno virtual a conda envs y actívelo con su nombre.

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

Método 3: Utilice Python o pip en el entorno virtual.

# 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

Guardar y compartir el entorno virtual

Empaquetar el entorno virtual que se va a migrar.

# 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

Descomprima el paquete en el directorio de 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

Consulte los entornos virtuales de conda existentes.

# 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