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:
- Crear un entorno virtual y guardarlo en el directorio de SFS
- Clonación de los entornos virtuales existentes en el disco de SFS
- Reinicio de la imagen para activar el entorno virtual en el disco de SFS
- 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