So fügen Sie dem Jupiter-Labor eine Conda-Umgebung hinzu

74

Ich verwende Jupyter Lab und habe Probleme, eine condaUmgebung hinzuzufügen . Die Idee ist, Jupyter Lab von meiner Basisumgebung aus zu starten und dann meine anderen Conda-Envs als Kernel auswählen zu können.

Ich habe das Paket installiert, das nb_conda_kernelsgenau das tun soll, aber es funktioniert nicht so, wie ich es will. Nehmen wir an, ich erstelle eine neue Conda-Umgebung und starte dann das Jupyter-Labor von der Basis aus. Ich kann die neue Umgebung nicht als verfügbaren Kernel sehen.

Ich habe einen "Fix" gefunden, der jedes Mal funktioniert, aber überhaupt nicht praktisch ist. Wenn ich Jupyter Notebook in meiner neuen Umgebung installiere, starte ich ein Jupyter-Notebook aus dieser neuen Umgebung, schließe es, gehe zurück zur Basisumgebung und starte Jupyter Lab aus der Basisumgebung. Meine neue Umgebung ist als Kernel in Jupyter Lab verfügbar.

Wenn Sie wissen, wie es ohne dieses "Update" funktioniert, wäre ich Ihnen sehr dankbar.

Statistischer Dekan
quelle

Antworten:

150

Angenommen, Ihr conda-env heißt cenv, ist es so einfach wie:

$ conda activate cenv
(cenv)$ conda install ipykernel
(cenv)$ ipython kernel install --user --name=<any_name_for_kernel>
(cenv($ conda deactivate

Wenn Sie Ihr Jupyter-Notebook / Labor neu starten, können Sie den neuen verfügbaren Kernel sehen.

PS: Wenn Sie virtualenv usw. verwenden, gelten die obigen Schritte.

Nihal Sangeeth
quelle
7
Ich leite Leute, die Schwierigkeiten haben, eine Tensorflow-Umgebung dazu zu bringen, im Jupiter-Labor / Notebook zu arbeiten, auf diese Antwort. Es hat bei mir funktioniert. Vielen Dank.
Aez
1
Ich würde nur hinzufügen, dass Sie, sobald Sie den neuen Kernel haben, zu Ihrem Jupyter-Notizbuch gehen und unter "Kernel" "Kernel ändern" für Ihren neu erstellten Kernel auswählen. Dort können Sie beispielsweise Tensorflow als tf importieren, wenn Ihre Umgebung eine Tensorflow-Umgebung war. Ich empfehle dies auch für Leute, die von jupyter in eine Tensorflow-Umgebung gelangen. Ich habe mehrere Fragen dazu hierher weitergeleitet.
Ivan
3
Warum erbt jupyter lab nicht einfach die Umgebung wie jupyter notebook für mich? Wie auch immer, das hat mein Problem behoben, also danke dafür.
Freddy
1
Es ist hilfreich, den Kernel so zu benennen, dass er angibt, an welche Umgebung / Verwendung er gebunden ist.
Ohailolcat
20

Eine Lösung mit nb_conda_kernels. Installieren Sie es zunächst in Ihrer Basisumgebung:

(base)$ conda install -c conda-forge nb_conda_kernels

Um dann einen Kernel für die conda_env zu erhalten cenv:

$ conda activate cenv
(cenv)$ conda install ipykernel
(cenv)$ conda deactivate

Sie erhalten einen neuen Kernel mit dem Namen Python [conda env:cenv]in Ihrem nächsten Lauf von jupyter lab/jupyter notebook

Hinweis: Wenn Sie nb_conda_kernelseine neue Conda-Umgebung installiert haben und diese erstellen möchten und sofort darauf zugreifen können

conda create -n new_env_name ipykernel

wird den Job machen.

Statistischer Dekan
quelle
1
Leider scheint dies nicht zu funktionieren (Jupyter Lab Version 1.1.4 mit Python 3.7.4) - verwenden Sie die oben akzeptierte Antwort, um den Kernel zu installieren.
Philmaweb
1
Funktioniert für mich mit Jupyter Lab 1.1.4, Python 3.7.3 und nb_conda_kernels 2.2.2. Der Kernel muss nicht "installiert" werden, außer in der Umgebung, auf die Sie in Ihrem Notebook zugreifen möchten.
Sappjw
@sappjw Die akzeptierte Antwort funktioniert, aber diese fehlt $ ipython kernel install --user --name=<any_name_for_kernel>und hat den neuen Kernel erst gesehen, als ich dies getan habe
Pherdindy
@Pherdindy der Unterschied ist, dass diese Antwort auf nb-conda_kernels beruht, um die Conda-Umgebung zu erkennen, die das ipython kernel install lineUnnötige macht
Statistik Dean
Ich bevorzuge diese Methode, da Sie ein Notizbuch
ausführen
7

Ich habe beide oben genannten Lösungen ausprobiert und sie haben bei mir nicht ganz funktioniert. Dann bin ich auf diesen mittleren Artikel gestoßen, der das Problem gelöst hat: https://medium.com/@jeremy.from.earth/multiple-python-kernels-for-jupyter-lab-with-conda-c67e50de3aa3

Im Wesentlichen ist es nach dem Ausführen conda install ipykernelin Ihrer cenvUmgebung auch gut, python -m ipykernel install --user --name cenvin der cenvUmgebung auszuführen. Auf diese Weise stellen wir sicher, dass die in der Jupyter-Umgebung verwendete Python-Version diejenige ist, in der sie sich befindet cenv. Prost!

Daniel Firebanks-Quevedo
quelle
2
Das hat bei mir funktioniert, als alles andere fehlgeschlagen ist. Vielen Dank! Immer noch nicht klar, warum nb_conda_kernels den Job nicht mehr automatisch für mich zu erledigen scheint. Beachten Sie, dass meiner Erfahrung nach, wenn Sie ipykernel, jupyterlab und nb_conda_kernels in Ihrer Basisumgebung installiert haben und JupyterLab aus der Basisumgebung heraus starten, es wahrscheinlicher ist, dass alle verfügbaren Conditiona-Kernel seltsamerweise angezeigt werden.
emigre459
Die ipykernel-Installation hat es auch für mich gelöst
ben filippi