Conda-Umgebungen werden in Jupyter Notebook nicht angezeigt

364

Ich habe Anaconda (mit Python 2.7) installiert und Tensorflow in einer Umgebung namens aufgerufen tensorflow. Ich kann Tensorflow erfolgreich in diese Umgebung importieren.

Das Problem ist, dass Jupyter Notebook die neue Umgebung, die ich gerade erstellt habe, nicht erkennt. Egal , ich Jupyter Notebook aus dem GUI - Navigator oder über die Befehlszeile starten innerhalb der tensorflowenv, gibt es nur einen Kernel im Menü aufgerufen Python [Root]und Tensorflow können nicht importiert werden. Natürlich habe ich mehrmals auf diese Option geklickt, die Datei gespeichert und erneut geöffnet, aber das hat nicht geholfen.

Seltsamerweise kann ich die beiden Umgebungen sehen, wenn ich die CondaRegisterkarte auf der Startseite von Jupyter öffne . Aber wenn ich die FilesRegisterkarte öffne und versuche, newein Notizbuch zu erstellen, habe ich immer noch nur einen Kernel.

Ich habe mir diese Frage angesehen: Conda-Umgebung mit Jupyter Notebook verknüpfen Aber es gibt kein Verzeichnis wie ~/Library/Jupyter/kernelsauf meinem Computer! Dieses Jupyter-Verzeichnis hat nur ein Unterverzeichnis namens runtime.

Ich bin ziemlich verwirrt. Sollen Conda-Umgebungen automatisch zu Kerneln werden? (Ich folgte https://ipython.readthedocs.io/en/stable/install/kernel_install.html , um die Kernel manuell einzurichten, wurde jedoch darauf hingewiesen, dass dies ipykernelnicht gefunden wurde.)

user31039
quelle
43
Führen Sie conda install ipykernelin dieser Umgebung.
Thomas K
1
conda install ipykernelscheint jupyterin der Umgebung zu installieren ... Vermisse ich etwas?
Dror
1
vermutlich hat ipykernel jupyter als abhängigkeit?
Kevinkayaks
1
scheint nicht mehr zu funktionieren ... siehe Antwort unten von Andreas
Casey L
@ThomasK Dies funktioniert nur, wenn nb_condaes verwendet wird oder wenn der Kernel manuell eingerichtet wird, wie in der Frage vorgeschlagen. Andernfalls wird es die Dinge tatsächlich ziemlich durcheinander bringen. Die ausführbare Datei jupyterverweist auf eine ausführbare Datei in der Umgebung, aber die Systeme jupyter-notebookwerden gestartet (falls installiert) und verwenden daher die Umgebung nicht mit dem Standardkernel.
Lumbric

Antworten:

542

Ich glaube nicht, dass die anderen Antworten mehr funktionieren, da conda aufgehört hat, Umgebungen automatisch als Jupyter-Kernel einzurichten. Sie müssen Kernel für jede Umgebung folgendermaßen manuell hinzufügen:

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

Wie hier dokumentiert: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Siehe auch dieses Problem .

Nachtrag: Sie sollten in der Lage sein, das nb_conda_kernelsPaket zu installieren conda install nb_conda_kernels, um alle Umgebungen automatisch hinzuzufügen, siehe https://github.com/Anaconda-Platform/nb_conda_kernels

Andreas Müller
quelle
28
Ist es möglich, dass Flag ab heute die aktuellste Lösung ist?
N. CHATURV3DI
1
Nur das hat bei mir funktioniert! conda install nb_conda - hat nicht geholfen. Vielen Dank!
Deil
2
Installieren nb_conda_kernelsfür mich ab April 2018 gearbeitet ( Python 3.6.4, conda 4.3.27, jupyter 4.4.0).
Wflynny
3
Korrektur zu meinem vorherigen Kommentar: Die neue Umgebung wird nicht nur beim ersten Mal angezeigt. Nachdem Sie die Umgebung deaktiviert und erneut aktiviert und dann den Jupyter geöffnet haben, wird sie ordnungsgemäß angezeigt.
R71
23
Wenn dies bei Ihnen nicht funktioniert, versuchen Sie, conda install ipykerneldiese Antwort auszuführen, sofern Sie diese bereits in Ihrer Umgebung installiert haben.
Ken Myers
150

Wenn Ihre Umgebungen nicht angezeigt werden, haben Sie sie wahrscheinlich nicht nb_conda_kernelsin der Umgebung installiert, in der Jupyter installiert ist. Anacondas Dokumentation besagt dies

nb_conda_kernelssollte in der Umgebung installiert sein, in der Sie Jupyter Notebook oder JupyterLab ausführen. Dies könnte Ihre Basis-Conda-Umgebung sein, muss es aber nicht sein. Wenn die Umgebung notebook_env beispielsweise das Notebook-Paket enthält, werden Sie ausgeführt

conda install -n notebook_env nb_conda_kernels

In allen anderen Umgebungen, auf die Sie in Ihren Notebooks zugreifen möchten, muss ein entsprechendes Kernelpaket installiert sein. Um beispielsweise auf eine Python-Umgebung zugreifen zu können, muss sie über das ipykernel-Paket verfügen. z.B

conda install -n python_env ipykernel

Um eine R-Umgebung nutzen zu können, muss das Paket r-irkernel vorhanden sein. z.B

conda install -n r_env r-irkernel

Für andere Sprachen müssen die entsprechenden Kernel installiert sein.

Beachten Sie, dass zum Zeitpunkt der ursprünglichen Veröffentlichung eine mögliche Ursache dafür bestand, dass nb_condaPython 3.6-Umgebungen noch nicht unterstützt wurden .

Wenn andere Lösungen Jupyter nicht dazu bringen, andere Conda-Umgebungen zu erkennen, können Sie sie jederzeit jupyterin einer bestimmten Umgebung installieren und ausführen . Möglicherweise können Sie in Jupyter jedoch keine anderen Umgebungen sehen oder zu diesen wechseln.

$ conda create -n py36_test -y python=3.6 jupyter
$ source activate py36_test
(py36_test) $ which jupyter
/home/schowell/anaconda3/envs/py36_test/bin/jupyter
(py36_test) $ jupyter notebook

Beachten Sie, dass ich Python 3.6.1 in diesem Notizbuch ausführe: enter image description here

Beachten Sie, dass in vielen Umgebungen der zusätzliche Speicherplatz durch die Installation von Jupyter in jeder Umgebung möglicherweise unerwünscht ist (abhängig von Ihrem System).

Steven C. Howell
quelle
Hallo Tut mir leid, diesen Thread wieder zu öffnen. Allerdings habe ich alles wie hier empfohlen ausprobiert und sehe Tensorflow Env immer noch nicht in Jupyter. Ich habe Jupyter in der Tensorflow-Umgebung installiert. Ich habe dort Python 3.6.1 installiert. Ich habe versucht, conda nb_conda zu installieren, aber es heißt Konflikt mit py3.6. Das wurde also nicht installiert, alles andere, was ich versucht habe, scheint nicht zu funktionieren. Irgendein Rat?
Baktaawar
OK. Ich habe noch einmal nachgesehen. Mein Problem ist, dass mein Jupyter beim Öffnen mit dem Python 3-Kernel keine Module importieren kann. Ich bin mir nicht sicher, warum das so ist. Und es zeigt auch keine andere
Umgebung
2
@Baktaawar, siehe meine aktualisierte Antwort, die zeigt, wie Python 3.6 im Notizbuch verwendet wird. Sie können eine Python 3.6-Umgebung ausführen. Sie müssen jupyter nur mit dieser aktiven Umgebung starten. Conda-Umgebungen können als eigenständige Python-Installationen betrachtet werden. Wenn Sie Jupyter in Ihrem System-Python installieren, wird ebenfalls nur eine Python-Kernel-Option angezeigt. nb_condaDer Zweck besteht nur darin, "Conda-Umgebung und Paketzugriffserweiterung aus Jupyter heraus bereitzustellen" und dies nicht zu tun, damit Sie Jupyter von der von Ihnen gewählten Python-Installation ausführen können.
Steven C. Howell
1
@ StevenC.Howell, danke, dass du mein Anliegen angesprochen hast. Ich denke, Sie müssen noch erwähnen, dass ipykernelin jeder Umgebung, die Sie als Kernel verwenden möchten, installiert werden muss.
Merv
1
Hmm, ich bin mir nicht sicher, warum es ohne funktioniert. Sie haben Recht, sie geben eindeutig an, dass es installiert werden sollte. Ich habe das zu meiner Antwort hinzugefügt. Vielen Dank!
Steven C. Howell
112

Das Ärgerliche ist, dass Sie in Ihrer tensorflowUmgebung jupyter notebook ohne Installation jupyterin dieser Umgebung ausgeführt werden können . Renn einfach

(tensorflow) $ conda install jupyter

und die tensorflowUmgebung sollte jetzt in Jupyter-Notizbüchern sichtbar sein, die in einer Ihrer condaUmgebungen als so etwas wie gestartet wurden Python [conda env:tensorflow].

Octavius
quelle
6
Ich hatte das gleiche Problem wie Thomas K, und die von Octavius ​​geteilte Lösung löste auch mein Problem. Es gibt jedoch einen Haken: Wenn Sie eine Python 3-Version von Anaconda haben, können Sie nur Ihre derzeit aktive Umgebung sehen, und es sollte einen eigenen Jupyter geben. Wenn Sie jedoch die Python 2-Version von Anaconda installieren, kann sie alle Umgebungen verarbeiten.
Rkmalaiya
6
Sie können "conda install nb_conda" auch in der Python2-Version von anaconda ausführen, um Ihre Envs von Jupyter selbst aus zu verwalten.
Rkmalaiya
7
@rkmalaiya ist richtig. Wenn Sie Miniconda3 oder Anaconda3 ausführen, arbeiten Sie conda install nb_condain einer Ihrer Condition-Umgebungen (in denen ein Jupyter-Notebook installiert ist). Sie können dann im Jupiter-Notebook-Browser zwischen Kernel und Conda-Envs wechseln.
Harsha Manjunath
1
Kann berichten, dass diese Methode im September 2018 mit Anaconda 5.2 Python 3.6
jdr5ca
13
Dies ist eine schreckliche Antwort, da sie Benutzer dazu ermutigt, Jupyter in jeder Umgebung zu installieren, was völlig unnötig ist. Der Grund, warum dies funktioniert, ist, dass ipykernel(was das einzige ist, was tatsächlich benötigt wird), eine Abhängigkeit von ist jupyter.
Merv
72

Ich musste alle in den Top 3 Antworten genannten Befehle ausführen, damit dies funktioniert:

conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel
Coolscitist
quelle
9
Dies war, was auch für mich funktionierte, aber ich brauchte nichtconda install nb_conda
Ken Myers
3
Erstaunliche Destillation!
Bao-Tin Hoang
1
Ich brauchte nur die ersten 3 Befehle, um den Umgebungskern als Option jupyter lab
anzuzeigen,
3
Hat auch für mich gearbeitet. Mein Gott, es war frustrierend, das herauszufinden.
Trevor Bye
4
Du brauchst nb_conda nicht! ;)
Prayson W. Daniel
48

Führen conda install ipykernelSie es einfach in Ihrer neuen Umgebung aus. Erst dann erhalten Sie einen Kernel mit dieser Umgebung. Dies funktioniert auch dann, wenn in jeder Umgebung unterschiedliche Versionen installiert sind und das Jupyter-Notebook nicht erneut installiert wird. Sie können Ihr Notizbuch von jeder Umgebung aus starten, in der Sie neu hinzugefügte Kernel sehen können.

Rakesh
quelle
10
Dies ist die beste Antwort ab Januar 2018. Jupyter sollte Ihren Kernel beim Start automatisch erkennen, wenn Sie sich einfach conda install ipykernelin Ihrer Conda-Umgebung befinden. Im schlimmsten Fall können Sie python -m ipykernel install --user --name mykernelden Kernel manuell generieren, aber Sie möchten dies nicht tun, wenn er bereits automatisch erkannt wird, oder er wird zweimal in der Kernelliste angezeigt.
Colllin
2
Dadurch werden auch Jupiter und alle seine Abhängigkeiten installiert. Es funktioniert, aber irgendwie ist es nicht optimal
Quickbeam2k1
16

Zusammenfassung (tldr)

Wenn Sie möchten, dass der 'python3'-Kernel die Python-Installation immer in der Umgebung ausführt, in der sie gestartet wird, löschen Sie den' python3'-Kernel des Benutzers, der Vorrang vor der aktuellen Umgebung hat:

jupyter kernelspec remove python3

Vollständige Lösung

Ich werde eine alternative und einfachere Lösung für den folgenden Fall veröffentlichen:

  • Sie haben eine Conda-Umgebung erstellt
  • In dieser Umgebung ist jupyter installiert (das auch ipykernel installiert).
  • Wenn Sie den Befehl ausführen jupyter notebook und ein neues Notizbuch erstellen, indem Sie im Dropdown-Menü "Neu" auf "python3" klicken, führt dieses Notizbuch Python in der Basisumgebung und nicht in der aktuellen Umgebung aus.
  • Sie möchten, dass beim Starten eines neuen Notizbuchs mit 'python3' in einer beliebigen Umgebung die Python-Version aus dieser Umgebung und NICHT aus der Basis ausgeführt wird

Ich werde den Namen 'test_env' für die Umgebung für den Rest der Lösung verwenden. Beachten Sie außerdem, dass 'python3' der Name des Kernels ist.

Die derzeit am besten gewählte Antwort funktioniert, aber es gibt eine Alternative. Es heißt, Folgendes zu tun:

python -m ipykernel install --user --name test_env --display-name "Python (test_env)"

Dies gibt Ihnen die Möglichkeit, die Umgebung test_env zu verwenden, unabhängig davon, aus welcher Umgebung Sie starten jupyter notebook. Beim Starten eines Notebooks mit 'python3' wird jedoch weiterhin die Python-Installation aus der Basisumgebung verwendet.

Was wahrscheinlich passiert, ist, dass ein Benutzer-Python3-Kernel vorhanden ist. Führen Sie den Befehl aus, jupyter kernelspec listum alle Ihre Umgebungen aufzulisten. Wenn Sie beispielsweise einen Mac haben, erhalten Sie Folgendes zurück (mein Benutzername ist Ted).

python3       /Users/Ted/Library/Jupyter/kernels/python3

Was Jupyter hier tut, ist die Suche in drei verschiedenen Pfaden nach Kerneln. Es geht vom Benutzer über Env bis zum System . Siehe dieses Dokument weitere Informationen zu den Pfaden, nach denen für jedes Betriebssystem gesucht wird.

Die beiden oben genannten Kernel befinden sich beide im Benutzerpfad. Dies bedeutet, dass sie unabhängig von der Umgebung verfügbar sind, in der Sie ein Jupyter-Notebook starten. Dies bedeutet auch, dass Sie niemals darauf zugreifen können, wenn es auf Umgebungsebene einen anderen 'Python3'-Kernel gibt.

Für mich ist es sinnvoller, wenn Sie den Kernel 'python3' aus der Umgebung auswählen, aus der Sie das Notebook gestartet haben, Python aus dieser Umgebung ausführen.

Sie können überprüfen, ob Sie eine andere "Python3" -Umgebung haben, indem Sie im Env-Suchpfad für Ihr Betriebssystem nachsehen (siehe den Link zu den obigen Dokumenten). Für mich (auf meinem Mac) habe ich den folgenden Befehl ausgegeben:

 ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels

Und ich hatte tatsächlich einen 'python3'-Kernel dort aufgelistet.

Dank dieses GitHub-Problemkommentars (siehe erste Antwort) können Sie die Benutzerumgebung 'python3' mit dem folgenden Befehl entfernen:

jupyter kernelspec remove python3

Wenn Sie jetzt ausführen jupyter kernelspec listund davon ausgehen, dass test_env noch aktiv ist, erhalten Sie Folgendes:

python3       /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3

Beachten Sie, dass sich dieser Pfad im Verzeichnis test_env befindet. Wenn Sie eine neue Umgebung erstellen, jupyter installieren, aktivieren und die Kernel auflisten, erhalten Sie einen weiteren 'python3'-Kernel in seinem Umgebungspfad.

Der User 'python3'-Kernel hatte Vorrang vor allen Env' python3'-Kerneln. Durch das Entfernen wurde der Kernel der aktiven Umgebung 'python3' verfügbar gemacht und konnte jedes Mal ausgewählt werden. Dadurch entfällt die Notwendigkeit, Kernel manuell zu erstellen. Sinnvoller ist es auch in Bezug auf die Softwareentwicklung, wenn man sich in einer einzigen Umgebung isolieren möchte. Das Ausführen eines Kernels, der sich von der Hostumgebung unterscheidet, scheint nicht selbstverständlich zu sein.

Es scheint auch, dass dieser Benutzer 'python3' nicht standardmäßig für alle installiert ist, sodass nicht alle mit diesem Problem konfrontiert sind.

Ted Petrou
quelle
python -m ipykernel install --user --name test_env --display-name "Python (test_env)" funktioniert wie ein Zauber. Vielen Dank
slobodan.blazeski
12
    $ conda install nb_conda_kernels

(in der Conda-Umgebung, in der Sie das Jupyter-Notebook ausführen) stellt alle Conda-Envs automatisch zur Verfügung. Für den Zugriff auf andere Umgebungen müssen die entsprechenden Kernel installiert sein. Hier ist der Ref .

ohailolcat
quelle
Rekapituliert dies nicht einfach stackoverflow.com/a/48349338/570918 ?
Merv
Das sieht nach dem einfachsten Weg aus.
Decula
9

Wir haben viel mit diesem Problem zu tun, und hier ist, was für uns funktioniert. Wenn Sie den Conda-Forge-Kanal verwenden , ist es wichtig sicherzustellen, dass Sie aktualisierte Pakete von verwenden conda-forge, auch in Ihrer MinicondaRoot-Umgebung.

Installieren Sie also Miniconda und machen Sie dann:

conda config --add channels conda-forge --force
conda update --all  -y
conda install nb_conda_kernels -y
conda env create -f custom_env.yml -q --force
jupyter notebook

und Ihre benutzerdefinierte Umgebung wird in Jupyter als verfügbarer Kernel angezeigt, sofern dies ipykernelfür die Installation in Ihrer custom_env.ymlDatei aufgeführt ist, wie in diesem Beispiel:

name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel

Um zu beweisen, dass es mit einer Reihe von benutzerdefinierten Umgebungen funktioniert, ist hier ein Screenshot von Windows:

Geben Sie hier die Bildbeschreibung ein

Rich Signell
quelle
8

Das nb_conda_kernelsPaket ist der beste Weg, um jupytermit zu verwenden conda. Mit minimalen Abhängigkeiten und Konfigurationen können Sie andere Conda-Umgebungen von einem Jupyter-Notebook aus verwenden, das in einer anderen Umgebung ausgeführt wird. Zitieren seiner Dokumentation :

Installation

Dieses Paket kann ausschließlich mit Conda verwaltet werden. Es sollte in der Umgebung installiert werden, in der Sie Jupyter Notebook oder JupyterLab ausführen. Dies könnte Ihre baseConda-Umgebung sein, muss es aber nicht sein. Wenn die Umgebung beispielsweise notebook_envdas Notebook-Paket enthält, werden Sie ausgeführt

conda install -n notebook_env nb_conda_kernels

In allen anderen Umgebungen, auf die Sie in Ihren Notebooks zugreifen möchten, muss ein entsprechendes Kernelpaket installiert sein. Um beispielsweise auf eine Python-Umgebung zugreifen zu können, muss das ipykernelPaket vorhanden sein. z.B

conda install -n python_env ipykernel

Um eine R-Umgebung nutzen zu können, muss das Paket r-irkernel vorhanden sein. z.B

conda install -n r_env r-irkernel

Für andere Sprachen müssen die entsprechenden Kernel installiert sein.

Dann müssen Sie nur noch den Jupiter-Notebook-Server starten:

conda activate notebook_env  # only needed if you are not using the base environment for the server
# conda install jupyter # in case you have not installed it already
jupyter

Geben Sie hier die Bildbeschreibung ein


Trotz der Fülle an Antworten und der Bemühungen von @ merv, sie zu verbessern, ist es immer noch schwierig, eine gute zu finden. Ich habe dieses eine CW gemacht, also stimmen Sie es bitte nach oben ab oder verbessern Sie es!

jan-glx
quelle
7

Ich bin auf dasselbe Problem gestoßen, bei dem meine neue Conda-Umgebung myenvnicht als Kernel oder neues Notizbuch ausgewählt werden konnte. Und läuftjupter notebook aus der Umgebung ergab das gleiche Ergebnis.

Meine Lösung und was ich darüber gelernt habe, wie Jupyter-Notebooks Conda-Envs und Kernel erkennen:

Installation von jupyter und ipython myenvmit conda:

conda install -n myenv ipython jupyter

Danach laufen Sie jupter notebookaußerhalb einer myenvUmgebung, die zusammen mit meinen vorherigen Umgebungen als Kernel aufgeführt ist .

Python [conda env:old]
Python [conda env:myenv]

Ausführen des Notebooks nach Aktivierung der Umgebung:

source activate myenv
jupyter notebook

versteckt alle meine anderen Umgebungskerne und zeigt nur meine Sprachkerne:

python 2
python 3
R
Shri Samson
quelle
6

Dies funktionierte für mich in Windows 10 und der neuesten Lösung:

1) Gehen Sie in diese Conda-Umgebung (aktivieren Sie Ihren_env_namen)

2) conda install -n your_env_name ipykernel

3) python -m ipykernel install --user --name build_central --display-name "your_env_name"

(HINWEIS: Fügen Sie in Schritt 3 die Anführungszeichen um "your_env_name" ein.)

schlechter Programmierer
quelle
4

Das war so frustrierend. Mein Problem war, dass sich Jupiter in einer neu erstellten Conda Python36-Umgebung weigerte, „Seaborn“ zu laden - obwohl Seaborn in dieser Umgebung installiert war. Es schien in der Lage zu sein, viele andere Dateien aus derselben Umgebung zu importieren - zum Beispiel Numpy und Pandas, aber nur nicht Seaborn. Ich habe viele der hier und in anderen Threads vorgeschlagenen Korrekturen ohne Erfolg ausprobiert. Bis mir klar wurde, dass Jupyter nicht Kernel-Python in dieser Umgebung ausführte, sondern das System-Python als Kernel. Obwohl ein anständig aussehender Kernel und kernel.json bereits in der Umgebung vorhanden waren. Erst nach dem Lesen dieses Teils der ipython-Dokumentation: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments und mit diesen Befehlen:

source activate other-env
python -m ipykernel install --user --name other-env --display-name "Python (other-env)"

Ich konnte alles gut laufen lassen. (Ich habe die Variable -user nicht verwendet).

Eine Sache, die ich noch nicht herausgefunden habe, ist, wie man den Standard-Python auf "Python (other-env)" setzt. Derzeit verwendet eine vorhandene .ipynb-Datei, die über den Startbildschirm geöffnet wird, die Systempython. Ich muss das Kernel-Menü "Kernel ändern" verwenden, um die Umgebungspython auszuwählen.

George J Wright
quelle
4

Während die Antwort von @ coolscitist für mich funktioniert hat, gibt es auch eine Möglichkeit, Ihre Kernel-Umgebung nicht mit dem kompletten Jupyter-Paket + deps zu überladen. Es wird in den ipython-Dokumenten beschrieben und ist (wie ich vermute) nur erforderlich, wenn Sie den Notebook-Server in einer Nicht- Basisumgebung ausführen.

conda activate name_of_your_kernel_env
conda install ipykernel
python -m ipykernel install --prefix=/home/your_username/.conda/envs/name_of_your_jupyter_server_env --name 'name_of_your_kernel_env'

Sie können überprüfen, ob es mit funktioniert

conda activate name_of_your_jupyter_server_env 
jupyter kernelspec list
jan-glx
quelle
1
Tatsächlich conda install nb_conda_kernelsfunktioniert es besser , jupyter zu aktualisieren und zu verwenden .
Jan-Glx
Beachten Sie nur, dass dies python -m ipykernel installdie traditionelle Methode zum Registrieren einer Umgebung ist und für andere (Nicht-Conda-) Umgebungen funktioniert. Die Idee dahinter nb_conda_kernelsist, dass Sie dies nicht manuell tun müssen, solange Sie installieren ipykernel.
Merv
Ja! Ich habe diesen Kommentar in diese eigenständige Antwort umgewandelt .
Jan-Glx
2

Ich hatte ein ähnliches Problem und fand eine Lösung, die für Mac, Windows und Linux funktioniert. Es werden nur wenige Schlüsselzutaten benötigt, die in der obigen Antwort enthalten sind:

Um conda env im Jupyter-Notizbuch sehen zu können, benötigen Sie:

  • das folgende Paket in Ihrer Basisumgebung:
    conda install nb_conda

  • Das folgende Paket in jeder von Ihnen erstellten Umgebung:
    conda install ipykernel

  • Überprüfen Sie die Konfiguration der jupyter_notebook_config.py
    ersten Überprüfung, wenn Sie eine jupyter_notebook_config.pyan einem der angegebenen Speicherorte haben. jupyter --paths
    Wenn diese nicht vorhanden ist, erstellen Sie sie, indem Sie jupyter notebook --generate-config
    add ausführen, oder stellen Sie sicher, dass Sie Folgendes haben:c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'

Die Umgebung, die Sie in Ihrem Terminal sehen können: Geben Sie hier die Bildbeschreibung ein

In Jupyter Lab sehen Sie sowohl auf dem Notebook als auch auf der Konsole dieselbe Umgebung wie oben: Geben Sie hier die Bildbeschreibung ein

Und Sie können Ihre Umgebung auswählen, wenn ein Notizbuch geöffnet ist: Geben Sie hier die Bildbeschreibung ein

Der sichere Weg besteht darin, eine bestimmte Umgebung zu erstellen, von der aus Sie Ihr Beispiel für denjupyter lab Befehl env ausführen . Aktivieren Sie Ihre Umgebung. Fügen Sie dann die Beispiel-Erweiterung für die Jupiter-Laborerweiterung hinzu . Dann kannst du rennen jupyter lab

Dr. Fabien Tarrade
quelle
1

Befolgen Sie die Anweisungen in der iPython-Dokumentation, um der Liste der Kernel, aus denen Sie in Jupyter Notebook auswählen können, verschiedene Conda-Umgebungen hinzuzufügen. Zusammenfassend müssen Sie nach der Installation ipykerneljede Conda-Umgebung einzeln in einem Terminal aktivieren und den Befehl ausführen python -m ipykernel install --user --name myenv --display-name "Python (myenv)", in dem myenvsich die Umgebung (der Kernel) befindet, die Sie hinzufügen möchten.

Vivek Subramanian
quelle
1

Mögliches kanalspezifisches Problem

Ich hatte dieses Problem (wieder) und es stellte sich heraus, dass ich es über den Conda-Forge- Kanal installiert hatte . Entfernen und erneutes Installieren von Anaconda Channel hat es stattdessen für mich behoben.

Update : Ich hatte wieder das gleiche Problem mit einer neuen Umgebung, diesmal habe ich nb_conda_kernelsvon Anaconda Channel installiert , aber meine jupyter_clientwar von der Conda-Forge Kanal. Durch Deinstallieren nb_conda_kernelsund erneutes Installieren wurde dies auf einen Kanal mit höherer Priorität aktualisiert.

Stellen Sie also sicher, dass Sie von den richtigen Kanälen installiert haben :)

xyzzyqed
quelle
Klingt so, als hätten Sie einige Dinge durcheinander gebracht. jupyterund nb_conda_kernelssollte in einer Umgebung installiert werden - hier laufen Sie immer jupyter notebookaus. Neue Envs benötigen nur ipykernel, sollten aber beim Ausführen nicht aktiviert werden jupyter notebook.
merv
1
Mir ist bewusst, es war auf einer neuen Maschine.
xyzzyqed
1
Okay. Ich habe Ihre Antwort bearbeitet, hauptsächlich, um meine Stimme zu ändern, aber auch um zu klären, wie Sie den Conda- Kanal genannt haben (keine Sache - entweder Standardeinstellungen oder Anakonda ). Fühlen Sie sich frei, es weiter zu bearbeiten, wenn ich falsch sage, was passiert ist.
Merv
-1

In meinem Fall unter Windows 10 und Condition 4.6.11 durch Ausführen der Befehle

conda install nb_conda

conda install -c conda-forge nb_conda_kernels

vom Terminal aus, während die Umgebung aktiv war, hat den Job nicht ausgeführt, nachdem ich Jupyter über dieselbe Befehlszeile mit geöffnet habe conda jupyter notebook.

Die Lösung bestand anscheinend darin, Jupyter über den Anaconda Navigator zu öffnen, indem Sie in Umgebungen zu meiner Umgebung gingen: Öffnen Sie Anaconda Navigator, wählen Sie die Umgebung in Umgebungen aus, klicken Sie in der ausgewählten Umgebung auf die Schaltfläche "Wiedergabe" und wählen Sie "Mit Jupyter Notebook öffnen".

Umgebungen in Anaconda Navigator zum Ausführen von Jupyter in der ausgewählten Umgebung

Albertopolis
quelle
1
Schauen Sie sich die Dokumentation zur Verwendung von Conda-Kerneln an. Sie starten Jupyter aus der Umgebung mit Jupyter. Sie installieren ipykernelin allen Umgebungen, die Sie in Jupyter als Kernel verwenden möchten.
Merv