Come posso installare i pacchetti Python in un ambiente Conda su un'istanza del notebook Amazon SageMaker?

3 minuti di lettura
0

Voglio installare i pacchetti Python in un ambiente Conda specifico, controllare le versioni dei pacchetti installati o creare un ambiente Conda persistente.

Risoluzione

Installa i pacchetti Python in un ambiente Conda specifico

Se usi pip o Conda per installare le librerie Python sul terminale senza specificare l'ambiente Conda corretto, riceverai un ModuleNotFoundErrorquando importi quel pacchetto Python sul tuo notebook in esecuzione. Questo perché non stai installando i pacchetti Python nell'ambiente Conda corretto. Per installare i pacchetti Python nell'ambiente Conda corretto, innanzitutto attiva l'ambiente prima di eseguire pip install o conda install dal terminale.

Ad esempio:

sh-4.2$ source activate python3
(python3) sh-4.2$ pip install theano
(python3) sh-4.2$ source deactivate
(JupyterSystemEnv) sh-4.2$

Per eseguire questo comando in una cella del notebook, aggiungi un punto esclamativo ("!") all'inizio del comando. Questo forza l'esecuzione del comando come comando della shell dal notebook e assicura che il pacchetto sia installato nel kernel Jupyter corrente.

Ad esempio:

import sys
!conda install -y --prefix {sys.prefix} theano

Nota: Quando esegui conda install in una cella del notebook, non puoi inserire una risposta interattiva. Per installare pacchetti in una cella del notebook usando Conda, devi passare -y in modo esplicito. Altrimenti, il comando si blocca e attende la conferma dell'utente.

Oppure, usa pip install:

import sys
!{sys.executable} -m pip install theano

A volte, pip potrebbe non riuscire a installare alcune delle dipendenze del pacchetto. Quando ciò accade, usa Conda per installare i pacchetti invece di pip. Conda verifica che tutti i componenti richiesti siano soddisfatti prima di installare i pacchetti. Per ulteriori informazioni, consulta Comprendere Conda e Pip nella documentazione di Conda.

Altri comandi utili

Per visualizzare l'ambiente Conda predefinito, esegui uno dei seguenti comandi nel terminale di istanza del notebook:

$ conda env list
$ conda info --envs

Esempio di output:

# conda environments:
#
base                     /home/ec2-user/anaconda3
JupyterSystemEnv      *  /home/ec2-user/anaconda3/envs/JupyterSystemEnv
R                        /home/ec2-user/anaconda3/envs/R
amazonei_mxnet_p27       /home/ec2-user/anaconda3/envs/amazonei_mxnet_p27
amazonei_mxnet_p36       /home/ec2-user/anaconda3/envs/amazonei_mxnet_p36
amazonei_tensorflow_p27     /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p27
amazonei_tensorflow_p36     /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p36
chainer_p27              /home/ec2-user/anaconda3/envs/chainer_p27
chainer_p36              /home/ec2-user/anaconda3/envs/chainer_p36
mxnet_p27                /home/ec2-user/anaconda3/envs/mxnet_p27
mxnet_p36                /home/ec2-user/anaconda3/envs/mxnet_p36
python2                  /home/ec2-user/anaconda3/envs/python2
python3                  /home/ec2-user/anaconda3/envs/python3
pytorch_p27              /home/ec2-user/anaconda3/envs/pytorch_p27
pytorch_p36              /home/ec2-user/anaconda3/envs/pytorch_p36
tensorflow_p27           /home/ec2-user/anaconda3/envs/tensorflow_p27
tensorflow_p36           /home/ec2-user/anaconda3/envs/tensorflow_p36

Per visualizzare i kernel installati sul notebook, esegui questo comando:

sh-4.2$ ipython kernelspec list

Per verificare la versione di un pacchetto installato in un ambiente Conda, esegui questo comando nel terminale di istanza del notebook:

(python3) sh-4.2$ pip freeze | grep pandas

Oppure, controlla la versione del pacchetto nella cella del notebook usando questo comando:

import pandas as pd
pd.__version__

Crea un ambiente Conda persistente

Quando si arresta un notebook, SageMaker interrompe l'istanza Amazon Elastic Compute Cloud (Amazon EC2) del notebook. I pacchetti installati nell'ambiente Conda non vengono mantenuti tra una sessione e l'altra. La directory /home/ec2-user/SageMaker è l'unico percorso che viene mantenuto tra una sessione e l'altra di istanze del notebook. Questa è la directory del volume Amazon Elastic Block Store (Amazon EBS) del notebook. Se desideri che le tue librerie vengano mantenute tra una sessione e l'altra, consulta Come posso essere sicuro che le librerie installate manualmente vengano mantenute in Amazon SageMaker se la configurazione del mio ciclo di vita si interrompe quando provo a installare le librerie?


Informazioni correlate

Installa librerie e kernel esterni nelle istanze del notebook

Personalizza un'istanza del notebook utilizzando uno script di configurazione del ciclo di vita