Wie kann ich Python-Pakete in einer Conda-Umgebung auf einer Amazon SageMaker-Notebook-Instance installieren?

Lesedauer: 3 Minute
0

Ich möchte Python-Pakete in einer bestimmten Conda-Umgebung installieren, die installierten Paketversionen überprüfen oder eine persistente Conda-Umgebung erstellen.

Lösung

Installieren Sie Python-Pakete in einer bestimmten Conda-Umgebung

Wenn Sie pip oder Conda verwenden, um Python-Bibliotheken auf dem Terminal zu installieren, ohne die richtige Conda-Umgebung anzugeben, erhalten Sie einen ModuleNotFoundError, wenn Sie dieses Python-Paket in Ihr laufendes Notebook importieren. Das liegt daran, dass Sie die Python-Pakete nicht in der richtigen Conda-Umgebung installieren. Um die Python-Pakete in der richtigen Conda-Umgebung zu installieren, aktivieren Sie zuerst die Umgebung, bevor Sie pip install oder conda install vom Terminal aus ausführen.

Zum Beispiel:

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

Um diesen Befehl in einer Notizbuchzelle auszuführen, fügen Sie ein Ausrufezeichen hinzu („!“) am Anfang des Befehls. Dadurch wird der Befehl als Shell-Befehl vom Notebook aus ausgeführt und es wird sichergestellt, dass das Paket im aktuellen Jupyter-Kernel installiert ist.

Zum Beispiel:

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

Hinweis: Wenn Sie Conda Install in einer Notebook-Zelle ausführen, können Sie keine interaktive Antwort eingeben. Um Pakete mit Conda in einer Notebook-Zelle zu installieren, müssen Sie explizit -y übergeben. Andernfalls bleibt der Befehl hängen und wartet auf die Bestätigung durch den Benutzer.

Oder verwende pip install:

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

Manchmal kann pip einige der Abhängigkeiten des Pakets nicht installieren. Wenn das passiert, verwende Conda, um Pakete anstelle von pip zu installieren. Conda überprüft, ob alle erforderlichen Komponenten erfüllt sind, bevor die Pakete installiert werden. Weitere Informationen finden Sie unter Understanding Conda und Pip in der Conda-Dokumentation.

Andere nützliche Befehle

Um die vorgefertigte Conda-Umgebung zu sehen, führen Sie einen der folgenden Befehle im Notebook-Instanceterminal aus:

$ conda env list
$ conda info --envs

Beispiel für eine Ausgabe:

# 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

Führen Sie diesen Befehl aus, um die Kernel zu sehen, die auf dem Notebook installiert sind:

sh-4.2$ ipython kernelspec list

Um die Version eines Pakets zu überprüfen, das in einer Conda-Umgebung installiert ist, führen Sie diesen Befehl im Notebook-Instanceterminal aus:

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

Oder überprüfen Sie die Paketversion in der Notizbuchzelle mit diesem Befehl:

import pandas as pd
pd.__version__

Erstellen Sie eine persistente Conda-Umgebung

Wenn Sie ein Notebook beenden, beendet SageMaker die Amazon Elastic Compute Cloud (Amazon EC2) -Instance des Notebooks. Pakete, die in der Conda-Umgebung installiert sind, bleiben zwischen den Sitzungen nicht bestehen. Das Verzeichnis /home/ec2-user/SageMaker ist der einzige Pfad, der zwischen Notebook-Instancesitzungen bestehen bleibt. Dies ist das Verzeichnis für das Amazon Elastic Block Store (Amazon EBS) -Volume des Notebooks. Wenn Sie möchten, dass Ihre Bibliotheken zwischen den Sitzungen bestehen bleiben, finden Sie weitere Informationen unter Wie kann ich sicherstellen, dass manuell installierte Bibliotheken in Amazon SageMaker bestehen bleiben, wenn meine Lifecycle-Konfiguration beim Versuch, die Bibliotheken zu installieren, ein Timeout aufweist?


Ähnliche Informationen

Installieren Sie externe Bibliotheken und Kernel in Notebook-Instanceen

Passen Sie eine Notebook-Instance mithilfe eines Lifecycle-Konfigurationsskripts an

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren