python-2.7 jupyter - Verwenden von Python 2.x und Python 3.x in IPython Notebook



mac open (9)

Mit einer aktuellen Version des Notebook / Jupyter können Sie einen Python3-Kernel erstellen. Nach dem Start einer neuen Notebook-Anwendung über die Kommandozeile mit Python 2 sollte im Dropdown-Menü "Neu" der Eintrag "Python 3" erscheinen. Das gibt Ihnen ein Notizbuch, das Python 3 verwendet. So können Sie zwei Notizbücher nebeneinander mit verschiedenen Python-Versionen haben.

Die Details

  1. Erstellen Sie dieses Verzeichnis: mkdir -p ~/.ipython/kernels/python3
  2. Erstelle diese Datei ~/.ipython/kernels/python3/kernel.json mit folgendem Inhalt:

    {
        "display_name": "IPython (Python 3)", 
        "language": "python", 
        "argv": [
            "python3", 
            "-c", "from IPython.kernel.zmq.kernelapp import main; main()", 
            "-f", "{connection_file}"
        ], 
        "codemirror_mode": {
            "version": 2, 
            "name": "ipython"
        }
    }
    
  3. Starten Sie den Notebook-Server neu.

  4. Wähle "Python 3" aus dem Dropdown-Menü "Neu"
  5. Arbeite mit einem Python 3 Notebook
  6. Wählen Sie "Python 2" aus dem Dropdown-Menü "Neu"
  7. Arbeite mit einem Python 2 Notebook

Ich benutze IPython-Notizbücher und möchte in der Lage sein, ein 2.x oder 3.x Python-Notizbuch in IPython zu erstellen.

Ich hatte zunächst Anaconda. Mit Anaconda musste eine globale Umgebungsvariable geändert werden, um auszuwählen, welche Version von Python Sie wollen und dann konnte IPython gestartet werden. Dies ist nicht das, was ich gesucht habe, also habe ich Anaconda deinstalliert und jetzt habe ich meine eigene Installation mit MacPorts und PiP eingerichtet. Es scheint, dass ich noch benutzen muss

port select --set python <python version> 

um zwischen Python 2.x und 3.x umzuschalten. Das ist nicht besser als die Anaconda-Lösung.

Gibt es eine Möglichkeit zu wählen, welche Version von Python Sie verwenden möchten, nachdem Sie ein IPython-Notebook gestartet haben, vorzugsweise mit meinem aktuellen MacPorts-Build?


Ich schaute auf diese ausgezeichnete Info und wunderte mich , seitdem

  1. Ich habe Python2, Python3 und IPython alle installiert,
  2. Ich habe PyCharm installiert,
  3. PyCharm verwendet IPython für seine Python-Konsole,

wenn PyCharm würde

  1. IPython-py2, wenn Menü> Datei> Einstellungen> Projekt> Projekt Interpreter == py2 AND
  2. IPython-py3, wenn Menü> Datei> Einstellungen> Projekt> Projekt Interpreter == py3

ANTWORT: Ja!

PS Ich habe auch Python Launcher für Windows installiert.


In diesen Anweisungen wird erläutert, wie ein Python2- und Python3-Kernel in separaten virtuellen Umgebungen für Nicht-Anaconda-Benutzer installiert wird. Wenn Sie Anaconda verwenden, finden Sie bitte meine andere Antwort für eine Lösung, die direkt auf Anaconda zugeschnitten ist.

Ich nehme an, dass Sie bereits jupyter notebook installiert haben.

python2 Sie zunächst sicher, dass Sie einen python2 und einen python3 Interpreter mit pip Verfügung haben.

Auf ubuntu würdest du diese installieren durch:

sudo apt-get install python-dev python3-dev python-pip python3-pip

Als nächstes bereiten Sie die Kernel-Umgebungen vor und registrieren Sie sie

python -m pip install virtualenv --user

# configure python2 kernel
python -m virtualenv -p python2 ~/py2_kernel
source ~/py2_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py2 --user
deactivate

# configure python3 kernel
python -m virtualenv -p python3 ~/py3_kernel
source ~/py3_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py3 --user
deactivate

Um die Dinge einfacher zu machen, können Sie Shell-Aliase für den Aktivierungsbefehl zu Ihrer Shell-Konfigurationsdatei hinzufügen. Abhängig von dem System und der Shell, die Sie verwenden, kann dies zB ~/.bashrc , ~/.bash_profile oder ~/.zshrc

alias kernel2='source ~/py2_kernel/bin/activate'
alias kernel3='source ~/py3_kernel/bin/activate'

Nach dem Neustart Ihrer Shell können Sie nun neue Pakete installieren, nachdem Sie die zu verwendende Umgebung aktiviert haben.

kernel2
python -m pip install <pkg-name>
deactivate

oder

kernel3
python -m pip install <pkg-name>
deactivate


Von meiner Linux Installation habe ich folgendes gemacht:

sudo ipython2 kernelspec install-self

Und jetzt ist mein Python 2 wieder auf der Liste.

Referenz:

http://ipython.readthedocs.org/en/latest/install/kernel_install.html

AKTUALISIEREN:

Die obige Methode ist jetzt veraltet und wird in Zukunft gelöscht. Die neue Methode sollte sein:

sudo ipython2 kernel install


Verwenden Sie sudo pip3 install jupyter für die Installation von jupyter für python3 und sudo pip install jupyter für die Installation von jupyter notebook für python2. Dann können Sie den Befehl ipython kernel install aufrufen, um beide Arten von Notebooks zur Auswahl in jupyter notebook zu aktivieren.


Im Folgenden sind die Schritte zum Hinzufügen des Python2-Kernels zu Jupyter-Notebook:

öffne ein Terminal und erstelle eine neue Python 2-Umgebung: conda create -n py27 python=2.7

Aktivieren Sie die Umgebung: Linux source activate py27 oder Windows activate py27

installiere den Kernel im env: conda install notebook ipykernel

installiere den Kernel außerhalb von env: ipython kernel install --user

Schließen Sie env: source deactivate

Obwohl eine späte Antwort hoffen, dass jemand es nützlich findet: p


Unter Windows 7 hatte ich Anaconda und Anaconda3 installiert. Ich ging in \Users\me\anaconda\Scripts und ausgeführt

sudo .\ipython kernelspec install-self

Dann ging ich in \Users\me\anaconda3\Scripts und führte sie aus

sudo .\ipython kernel install

(Ich habe jupyter kernelspec install-self is DEPRECATED as of 4.0. You probably want 'ipython kernel install' to install the IPython kernelspec. )

Nach dem Start von jupyter notebook (in jupyter notebook ) habe ich in der oberen rechten Ecke unter "Neu" ein ordentliches Dropdown-Menü bekommen, das mir die Wahl zwischen Python 2 oder Python 3 Kernel erlaubt.


Mit Standard Library

Das Use- Subprozess-Modul (Python 3):

import subprocess
subprocess.run(['ls', '-l'])

Dies ist der empfohlene Standardweg. Kompliziertere Aufgaben (Pipes, Ausgabe, Eingabe usw.) können jedoch beim Konstruieren und Schreiben mühsam sein.

Hinweis zur Python-Version: Wenn Sie noch Python 2 verwenden, funktioniert subprocess.call auf ähnliche Weise.

ProTip: docs.python.org/2/library/shlex.html#shlex.split kann Ihnen helfen, den Befehl auf run , call und andere docs.python.org/2/library/shlex.html#shlex.split zu analysieren, falls Sie diese nicht in Listenform docs.python.org/2/library/shlex.html#shlex.split möchten (oder können!).

import shlex
import subprocess
subprocess.run(shlex.split('ls -l'))

Mit externen Abhängigkeiten

Wenn Sie sich nicht um externe Abhängigkeiten plumbum , verwenden Sie plumbum :

from plumbum.cmd import ifconfig
print(ifconfig['wlan0']())

Es ist der beste subprocess Wrapper. Es ist plattformübergreifend, dh es funktioniert sowohl auf Windows- als auch auf Unix-ähnlichen Systemen. Install by pip install plumbum .

Eine andere beliebte Bibliothek ist sh :

from sh import ifconfig
print(ifconfig('wlan0'))

Sie hat jedoch den Windows-Support eingestellt, so dass sie nicht mehr so ​​toll ist wie früher. Install by pip install sh .





python python-2.7 python-3.x ipython ipython-notebook