Ich möchte Jupyter konfigurieren, damit ich Python 2.7 und 3.4 Kernel gleichzeitig nebeneinander in zwei verschiedenen Notebooks ausführen kann (oder sogar von einem zum anderen in einem einzigen Notebook wechseln kann).(Wie) Kann ich Python 2.7 & 3.4 Notebooks nebeneinander in jupyter (ipython) ausführen?
(1) Ist das möglich?
Ich frage seit es in Using both Python 2.x and Python 3.x in IPython Notebook vorgeschlagen wurde, dass dies möglich wäre, aber keine ausführliche Antwort wurde zur Verfügung gestellt, wie genau das funktionieren würde.
Sie können auch in https://try.jupyter.org sehen, dass es irgendwie sehr machbar scheint (und Sie können sogar von einem Python 2-Kernel zu einem Python 3-Kernel wechseln). Ich finde es also vernünftig anzunehmen, dass es tatsächlich möglich ist (aber bitte korrigieren Sie mich, wenn ich falsch liege).
(2) Wie wird das gemacht?
Vorherige Antworten (beispielsweise in Open IPython Notebook 2.7 and 3.4 in Parallel) empfehlen bei zwei verschiedenen Ports zwei verschiedene ipython Notebook-Server zu starten. Dies ist natürlich völlig logisch und möglich, aber beantwortet meine Frage NICHT.
ipython kernelspec install-self
Diese erstellt kernel.json
Dateien für mich: in jupyter
zu zeigen, indem Sie den folgenden in der jeweiligen Python-Umgebung aufrufen
schaffte ich ipython
für Python zu installieren 2 & 3. ich beide Kerne dann bekam und ich könnte jetzt eine davon auswählen, um ein neues Notizbuch in jupyter
zu erstellen. Beispiel für kernel.json
für Python 2:
{
"display_name": "Python 2",
"language": "python",
"argv": [
"/usr/local/opt/python/bin/python2.7",
"-m",
"ipykernel",
"-f",
"{connection_file}"
]
}
Das Problem ist, wenn ich jupyter
aus einem Python-2-Umgebung (mit $PYTHONPATH
definiert) beginnen, kann ich nur ein Python-2-Kernel (der andere wird abstürzen, wenn die Öffnung entsprechendes Notizbuch). Das gleiche, wenn ich jupyter
von einer Python 3-Umgebung starte (mit $PYTHONPATH
definiert). Dies macht im Allgemeinen Sinn für mich, aber ich würde gerne wissen, wie jupyter
jupyter
zu starten, damit beide Kernel von der gleichen jupyter
Instanz ausgeführt werden können, und noch meine eigene spezifische $PYTHONPATH
s angeben, um meine Pakete laden zu können.
Ich dachte, das ist mein aktuelles Problem - $PYTHONPATH
vor dem Start jupyter
vorgeben. Also rief ich:
unset PYTHONPATH
ipython notebook
Ich kann jetzt in die Tat beiden Kerne läuft (py2 & 3) aus einer einzigen jupyter
Instanz, aber ich kann nicht Python-Pakete von bestimmten lokalen Verzeichnissen laden. Ich denke, ich könnte dies manuell im Inneren des Notebooks mit:
tun, aber ist das wirklich die Art, wie ich es tun sollte? oder kann ich zusätzliche Verzeichnisse konfigurieren, die ich normalerweise in $PYTHONPATH
woanders schreibe (z. B. die kernel.json
Datei?
PS: Bitte nicht fragen, warum Ich brauche das - nein, ich weiß nicht wirklich es braucht - aber ich würde trotzdem gerne wissen, ob und wie dies möglich sein könnte.
[EDIT]
Bitte beachten Sie, dass ich nicht bequem sein würde einige Python-Management-Programm (wie Anaconda) Installation all dies zu erreichen, (es sei denn, es ist der einzige Weg).
OK, ich habe einige meiner ersten Fragen auf dem Weg beantwortet, aber lass es mich wissen, wenn du mit dem '$ PYTHONPATH' Teil helfen kannst :) Danke! – Chris