2009-03-22 6 views
12

Wenn ich eine lange Zeile in IPython ausgeführt habe, und versuchen Sie es (mit dem Pfeil nach oben) oder Rückschritt über den Anfang der aktuellen Zeile, wird es falsch angezeigt (alle in einem Linie)Line-Wrapping-Probleme mit IPython-Shell

zum Beispiel in der folgenden Sitzung ich eine lange Linie eine etwas leere Zeile [2], dann up-arrowed zweimal [1] trat schrieb die print Anweisung in Zeile [3] und passierte folgendes zu erhalten:

Line wrap issue

Happ ens in iTerm und Terminal.app .. Ich hatte ein ähnliches Problem mit regulären Terminalsitzungen, die durch korrekt beenden Farbcodes behoben wurde, aber ich bin mir nicht sicher, wie es mit IPython zu beheben

+0

Dieses Problem mir sooooo lange verfolgt .... habe ich bis jetzt nicht realisiert, dass IPython dies verursacht. Versucht "Reset", "tput", "shopt -s checkwinsize", PS1 zurücksetzen, tmux Größe-Fenster, Escape Chars Magie, aber alles vergebens. Jetzt weiß ich, dass es nur auftritt, wenn IPython von TMux aufgerufen wurde, und IPython wurde getötet, oder an den Hintergrund gesendet (STRG + Z). – Andor

Antwort

11

Aha! Ich hatte eine alte Version des Python readline Moduls - installiere das neueste von http://ipython.scipy.org/dist/ und es funktioniert perfekt!

sudo easy_install http://ipython.scipy.org/dist/readline-2.5.1-py2.5-macosx-10.5-i386.egg 
+0

Stellen Sie sicher, dass Sie easy_install, nicht pip verwenden. Ich versuchte "pip install readline" und während readline installiert war, hatte ich immer noch das Problem mit ipython. Ich deinstalliert, dann easy_install verwendet, und das Problem gelöst. – Brian

+1

Nur versucht, '' pip install readline'' funktioniert jetzt gut und löste das Problem für mich .. – redShadow

+0

Auf meiner Linux-Mint-Installation 'pip install readline' erforderte ich, zuerst libncurses mit' apt-get install libncurses5-dev' zu installieren . – LondonRob

1

Ich kann nicht reproduzieren es (Pfeil nach oben Arbeiten für lange Leitungen in ipython):

ipython up-arrow long line

+0

:/Das ist wirklich nervig, ich habe versucht, jede Profilanpassung zu deaktivieren, mit der neuesten stabilen Version (ipython 0.9.1), zwei verschiedene Maschinen, mit verschiedenen Terminal-Profilen .. Welche Terminal-Emulator/Shell/Python/Ipython-Version usw. sind verwendest du? – dbr

+0

Den obigen Kommentar nicht beachten! – dbr

2

Bekam dieses Problem auf Snow Leopard. eine neue Version von Readline- von http://pypi.python.org/pypi/readline/ Installieren behebt es:

sudo easy_install http://pypi.python.org/packages/2.6/r/readline/readline-2.6.4-py2.6-macosx-10.6-universal.egg 
+0

Meine Aktie Snow Leopard hat python2.6.1 und die 2.6.4 Version hat nicht funktioniert. Auch hier ist der Link, um einen alternativen Spiegel zu verwenden, da der Hauptpypi in letzter Zeit langsam ist. sudo easy_install http://d.pypi.python.org/packages/2.6/r/readline/readline-2.6.1-py2.6-macosx-10.6-universal.egg –

+0

Gute Punkte. Ich sollte hinzufügen, dass ich die MacPorts-Version von Python benutze - 'python_select -s' läuft, gibt 'python26' anstelle von 'python26-apple' zurück, was in 'python_select -l' erscheint. – aam