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 tensorflow
env, 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 Conda
Registerkarte auf der Startseite von Jupyter öffne . Aber wenn ich die Files
Registerkarte öffne und versuche, new
ein 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/kernels
auf 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 ipykernel
nicht gefunden wurde.)
quelle
conda install ipykernel
in dieser Umgebung.conda install ipykernel
scheintjupyter
in der Umgebung zu installieren ... Vermisse ich etwas?nb_conda
es 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 Dateijupyter
verweist auf eine ausführbare Datei in der Umgebung, aber die Systemejupyter-notebook
werden gestartet (falls installiert) und verwenden daher die Umgebung nicht mit dem Standardkernel.Antworten:
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:
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_kernels
Paket zu installierenconda install nb_conda_kernels
, um alle Umgebungen automatisch hinzuzufügen, siehe https://github.com/Anaconda-Platform/nb_conda_kernelsquelle
nb_conda_kernels
für mich ab April 2018 gearbeitet (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
diese Antwort auszuführen, sofern Sie diese bereits in Ihrer Umgebung installiert haben.Wenn Ihre Umgebungen nicht angezeigt werden, haben Sie sie wahrscheinlich nicht
nb_conda_kernels
in der Umgebung installiert, in der Jupyter installiert ist. Anacondas Dokumentation besagt diesBeachten Sie, dass zum Zeitpunkt der ursprünglichen Veröffentlichung eine mögliche Ursache dafür bestand, dass
nb_conda
Python 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
jupyter
in einer bestimmten Umgebung installieren und ausführen . Möglicherweise können Sie in Jupyter jedoch keine anderen Umgebungen sehen oder zu diesen wechseln.Beachten Sie, dass ich Python 3.6.1 in diesem Notizbuch ausführe:
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).
quelle
nb_conda
Der 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.ipykernel
in jeder Umgebung, die Sie als Kernel verwenden möchten, installiert werden muss.Das Ärgerliche ist, dass Sie in Ihrer
tensorflow
Umgebungjupyter notebook
ohne Installationjupyter
in dieser Umgebung ausgeführt werden können . Renn einfachund die
tensorflow
Umgebung sollte jetzt in Jupyter-Notizbüchern sichtbar sein, die in einer Ihrerconda
Umgebungen als so etwas wie gestartet wurdenPython [conda env:tensorflow]
.quelle
conda install nb_conda
in 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.ipykernel
(was das einzige ist, was tatsächlich benötigt wird), eine Abhängigkeit von istjupyter
.Ich musste alle in den Top 3 Antworten genannten Befehle ausführen, damit dies funktioniert:
quelle
conda install nb_conda
jupyter lab
Führen
conda install ipykernel
Sie 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.quelle
conda install ipykernel
in Ihrer Conda-Umgebung befinden. Im schlimmsten Fall können Siepython -m ipykernel install --user --name mykernel
den Kernel manuell generieren, aber Sie möchten dies nicht tun, wenn er bereits automatisch erkannt wird, oder er wird zweimal in der Kernelliste angezeigt.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:
Vollständige Lösung
Ich werde eine alternative und einfachere Lösung für den folgenden Fall veröffentlichen:
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.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:
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 list
um alle Ihre Umgebungen aufzulisten. Wenn Sie beispielsweise einen Mac haben, erhalten Sie Folgendes zurück (mein Benutzername ist Ted).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:
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:
Wenn Sie jetzt ausführen
jupyter kernelspec list
und davon ausgehen, dass test_env noch aktiv ist, erhalten Sie Folgendes: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.
quelle
(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 .
quelle
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 IhrerMiniconda
Root-Umgebung.Installieren Sie also Miniconda und machen Sie dann:
und Ihre benutzerdefinierte Umgebung wird in Jupyter als verfügbarer Kernel angezeigt, sofern dies
ipykernel
für die Installation in Ihrercustom_env.yml
Datei aufgeführt ist, wie in diesem Beispiel:Um zu beweisen, dass es mit einer Reihe von benutzerdefinierten Umgebungen funktioniert, ist hier ein Screenshot von Windows:
quelle
Das
nb_conda_kernels
Paket ist der beste Weg, umjupyter
mit zu verwendenconda
. 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 :Dann müssen Sie nur noch den Jupiter-Notebook-Server starten:
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!
quelle
Ich bin auf dasselbe Problem gestoßen, bei dem meine neue Conda-Umgebung
myenv
nicht 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
myenv
mit conda:Danach laufen Sie
jupter notebook
außerhalb einermyenv
Umgebung, die zusammen mit meinen vorherigen Umgebungen als Kernel aufgeführt ist .Ausführen des Notebooks nach Aktivierung der Umgebung:
versteckt alle meine anderen Umgebungskerne und zeigt nur meine Sprachkerne:
quelle
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.)
quelle
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:
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.
quelle
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.
Sie können überprüfen, ob es mit funktioniert
quelle
conda install nb_conda_kernels
funktioniert es besser , jupyter zu aktualisieren und zu verwenden .python -m ipykernel install
die traditionelle Methode zum Registrieren einer Umgebung ist und für andere (Nicht-Conda-) Umgebungen funktioniert. Die Idee dahinternb_conda_kernels
ist, dass Sie dies nicht manuell tun müssen, solange Sie installierenipykernel
.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.py
an 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:
In Jupyter Lab sehen Sie sowohl auf dem Notebook als auch auf der Konsole dieselbe Umgebung wie oben:
Und Sie können Ihre Umgebung auswählen, wenn ein Notizbuch geöffnet ist:
Der sichere Weg besteht darin, eine bestimmte Umgebung zu erstellen, von der aus Sie Ihr Beispiel für den
jupyter 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 rennenjupyter lab
quelle
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
ipykernel
jede Conda-Umgebung einzeln in einem Terminal aktivieren und den Befehl ausführenpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, in demmyenv
sich die Umgebung (der Kernel) befindet, die Sie hinzufügen möchten.quelle
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_kernels
von Anaconda Channel installiert , aber meinejupyter_client
war von der Conda-Forge Kanal. Durch Deinstallierennb_conda_kernels
und 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 :)
quelle
jupyter
undnb_conda_kernels
sollte in einer Umgebung installiert werden - hier laufen Sie immerjupyter notebook
aus. Neue Envs benötigen nuripykernel
, sollten aber beim Ausführen nicht aktiviert werdenjupyter notebook
.In meinem Fall unter Windows 10 und Condition 4.6.11 durch Ausführen der Befehle
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
quelle
ipykernel
in allen Umgebungen, die Sie in Jupyter als Kernel verwenden möchten.