Kann mich jemand auf ein funktionierendes Setup für die Verwendung von Babel mit IPython verweisen?
Ich sehe ein seltsames Einrückungsverhalten, wenn ich versuche, Funktionen zu definieren. Dies geschieht unabhängig davon, ob ich das --classicFlag in spezifiziere oder nicht org-babel-python-command. Mein aktueller Befehl (Linux mit Emacs 24.4 ausführen):
(setq org-babel-python-command
"ipython --pylab=qt4 --pdb --nosep --classic --no-banner --no-confirm-exit")
Dies funktioniert nicht mit Funktionsdefinitionen.
#+BEGIN_SRC python :session *Broken IPython* :results output pp
def g(x, lst):
if isinstance(x, float):
x = x + 0
return [item + x for item in lst]
#+END_SRC

Dies scheint auch nichts damit zu --classictun zu haben, da ich den gleichen Fehler erhalte:

Bonuspunkte, wenn Sie ein funktionierendes Setup haben, das mich nicht zwingt, es zu verwenden, --classicda mir die Formatierung der "modernen" Benutzeroberfläche gefällt.
Aktualisieren
Mit dem Befehl magic kann ich Funktionen definieren und eine Sitzung auswerten, aber ohne eine kann ich keine Wertausgabe erhalten. Stattdessen bekomme ich:
#+BEGIN_SRC python :results output
def f(x):
return x + 2
f(2)
#+END_SRC
#+RESULTS:
: >>> ... ... >>> 4
: >>>
#+BEGIN_SRC python :results value
def f(x):
return x + 2
f(2)
#+END_SRC
#+RESULTS:
Es werden keine Ergebnisse zurückgegeben, anscheinend weil alle >>>in der Ausgabe nicht korrekt analysiert wurden.
:results valueSie Ihren Python-Code ändern müssen, indem Sie entweder eine explizitereturnAnweisung hinzufügen oder einer Variablen zuweisenfoound:return foodem Header hinzufügen . Aber selbst mit diesen Korrekturen funktioniert es in ipython nicht - siehe meinen zweiten Kommentar zu meiner Antwort unten.