Was ist der Unterschied zwischen Python und IPython?

220

Was genau ist der Unterschied zwischen Python und IPython ?

Wenn ich Code in Python schreibe, wird er in IPython so ausgeführt, wie er ist, oder muss er geändert werden?

Ich weiß, dass IPython eine interaktive Shell für Python sein soll, aber ist das alles? Oder gibt es eine Sprache namens IPython? Wenn ich etwas unter IPython schreibe, läuft es dann in Python und umgekehrt? Woher weiß ich, wenn es Unterschiede gibt? Funktionieren alle von Python verwendeten Pakete wie in IPython?

Asdfsdjlka Asdfsdjlka
quelle

Antworten:

153

ipython ist eine interaktive Shell, die mit Python erstellt wurde.

Von der Projektwebsite:

IPython bietet ein umfangreiches Toolkit, mit dem Sie Python optimal nutzen können:

  • Leistungsstarke Python-Shells (Terminal und Qt-basiert).
  • Ein webbasiertes Notizbuch mit denselben Kernfunktionen, jedoch Unterstützung für Code, Text, mathematische Ausdrücke, Inline-Diagramme und andere Rich Media.
  • Unterstützung für interaktive Datenvisualisierung und Verwendung von GUI-Toolkits.
  • Flexible, einbettbare Dolmetscher zum Laden in Ihre eigenen Projekte.
  • Einfach zu bedienende, leistungsstarke Tools für paralleles Rechnen.

Beachten Sie, dass in den ersten beiden Zeilen angegeben ist, dass Sie Python optimal nutzen können. Sie müssen Ihren Code also nicht ändern. Die IPython-Shell führt Ihren Python-Code wie die normale Python-Shell aus, nur mit mehr Funktionen.

Ich empfehle, das IPython-Tutorial zu lesen , um einen Eindruck davon zu bekommen, welche Funktionen Sie bei der Verwendung von IPython erhalten.

Martijn Pieters
quelle
8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesVielen Dank. Das ist alles was ich wissen musste.
Asdfsdjlka Asdfsdjlka
Können Sie einige Kommentare zur Ausführungsgeschwindigkeit von ipython vs python abgeben? Ich meine reines Ipython, nicht Ipython-Notebook, das einen Browser beinhalten würde.
Jason
2
@ Jason: Es ist genau die gleiche Bewertungsschleife. Die Präsentationsschicht kann einen gewissen Overhead verursachen (Parsen nach Ipython-Befehlen, hübsches Drucken der Ausdrucksausgabe), aber das sind alles konstante Kosten. Also im Grunde sehr, sehr wenig Unterschied.
Martijn Pieters
19

IPython ist im Grunde die "empfohlene" Python-Shell, die zusätzliche Funktionen bietet. Es gibt keine Sprache namens IPython.

Winnie Phan
quelle
Ist IPython nur die REPL?
Herr Suryaa Jha
@ Mr.SuryaaJha Es ist eine REPL, aber es gibt auch nur die Standard-Python-REPL (was Sie erhalten, wenn Sie pythoneine Shell eingeben ).
BallpointBen
16

Selbst nachdem ich diesen Thread angesehen hatte, hatte ich gedacht, dass ipython ein Synonym für die Python-Shell ist, mit anderen Worten, dass die Eingabe von Python über die Befehlszeile einen in den ipython-Modus versetzt.

Es ist in der Tat, wie oben erwähnt, eine sehr coole interaktive Shell (Befehlszeilenprogramm), die von iPython.org oder einfach durch Ausführen installiert werden kann

pip install ipython

oder das umfangreichere:

pip install ipython[notebook]

von der Kommandozeile.

MikeiLL
quelle
1
Guter Punkt, @Roadowl Ich denke, "interaktive Shell" ist ein bisschen überflüssig, nicht wahr?
MikeiLL
@Roadowl: (ein Jahr später, aber immer noch ...) Wie wäre es mit einer Shell, die ein Skript nicht interaktiv ausführt? Vielleicht ein einfaches Beispiel: $ sh -c 'foobar=3.14159'... oder vielleicht habe ich Ihren Kommentar falsch verstanden.
Cbhihe
12

IPython ist ein leistungsstarker interaktiver Python-Interpreter, der im Vergleich zum Standardinterpreter interaktiver ist.

Um den Standard-Python-Interpreter zu erhalten, den pythonSie eingeben, erhalten Sie die >>>Eingabeaufforderung, von wo aus Sie arbeiten können.

Um den IPython-Interpreter zu erhalten, müssen Sie ihn zuerst installieren. pip install ipython. Sie tippen ipythonund Sie erhalten In [1]:als Eingabeaufforderung und Sie erhalten In [2]:den nächsten Befehl. Sie können aufrufen history, um die Liste der vorherigen Befehle zu überprüfen, und schreiben %recall 1, um den Befehl abzurufen.

Auch wenn Sie in Python sind, können Sie Shell-Befehle direkt wie ausführen !ping www.google.com. Sieht aus wie ein Jupiter-Notizbuch mit Befehlszeile, wenn Sie das zuvor verwendet haben.

Sie können die [Tab]automatische Vervollständigung wie im Bild gezeigt verwenden. Geben Sie hier die Bildbeschreibung ein

Prosti
quelle
6

Es gibt nur wenige Unterschiede zwischen Python und IPython, aber sie sind nur die Interpretation weniger Syntax wie die wenigen, die von @Ryan Chase erwähnt wurden, aber tief im Inneren bleibt der wahre Geschmack von Python auch im Ipython erhalten.

Der beste Teil von IPython ist das IPython-Notebook. Sie können Ihre gesamte Arbeit in ein Notizbuch wie ein Skript, Bilddateien usw. einfügen. Mit Base Python können Sie das Skript jedoch nur in einer Datei erstellen und ausführen.

Zu Beginn müssen Sie verstehen, dass IPython mit der Absicht entwickelt wurde, Rich Media und Python-Skript in einem einzigen integrierten Container zu unterstützen.

Abish
quelle
6

Im Vergleich zu Python kann IPython (2001 von Fernando Perez erstellt) alles, was Python kann. Ipython bietet sogar zusätzliche Funktionen wie Tab-Vervollständigung, Testen, Debuggen, Systemaufrufe und viele andere Funktionen. Sie können sich IPython als leistungsstarke Schnittstelle zur Python-Sprache vorstellen.

Sie können Ipython mit pip installieren -pip install ipython

Sie können Ipython ausführen, indem Sie ipythonin Ihr Terminalfenster eingeben .

N Randhawa
quelle
2

Aus meiner Erfahrung habe ich festgestellt, dass einige Befehle, die in IPython ausgeführt werden, nicht in Basis-Python ausgeführt werden. Zum Beispiel pwdund arbeiten lsSie nicht alleine in Base Python. Sie funktionieren jedoch, wenn Folgendes vorangestellt ist %: %pwdund %ls.

In IPython können Sie den Befehl cd auch wie cd C:\Users\folgt ausführen: ... Dies scheint in Basispython nicht zu funktionieren, selbst wenn jedoch ein vorangestellt ist %.

Ryan Chase
quelle
3
import os; os.system('pwd')So mache ich das in Python.
Alles ist gut 28.
2
Alle %Befehle sind ipython-Befehle und funktionieren nicht in einer regulären interaktiven Python-Sitzung. Das schließt %pwdund ein %ls. Das %Präfix ist optional und nur erforderlich, wenn in Ihrer aktuellen Sitzung kein Konflikt mit einem globalen Python besteht.
Martijn Pieters