2012-04-13 10 views
22

Ich benutze Python 2.6 in einem virtualenv auf einem Ubuntu Linux 11.04 (natty) Maschine. Ich habe diesen Code in meinem (django) Python-Code:Python Debugger (pdb) gestoppt Handle up/down Pfeile, zeigt^[[A statt

import pdb ; pdb.set_trace() 

, um den Python-Debugger (PDB) zu starten.

Bis heute funktionierte das gut. Aber jetzt, wenn die pdb startet, funktioniert es zum Debuggen und Ausführen und Breakpoints usw., aber wenn ich den Pfeil nach oben drücken, um den vorherigen Befehl anzuzeigen, druckt es stattdessen ^[[A und geht nicht nach oben. Wenn ich etwas eintippe und Home drücke, druckt es ^[OH, anstatt den Cursor zu bewegen.

Ich kann up/home/etc. gut in der bash terminal, die meine python django unittests startet (die pdb call hat).

Was ist los? Wie repariere ich meine pdb? Was ist los mit meiner Readline?

+0

Ist es nicht pdb.set_trace()? –

+0

@reos Ja, das war ein Tippfehler. jetzt behoben. es war '' ... set_trace() '' in meinem Code – Rory

+1

haben Sie versucht, Ihre Shell zurückzusetzen? 'reset' – dm03514

Antwort

0

Entschuldigung ... aber haben Sie versucht, neu zu booten oder Control, Command, Option (oder ähnliche) keys auf Ihrem pdb server keyboard stecken?

11

Aus irgendeinem Grund fehlt Ihnen das readline-Paket. Installieren Sie es einfach, indem Sie pip install readline eingeben und es sollte sich wie erwartet verhalten. Denken Sie daran, es als Superuser einzugeben, wenn Sie nicht in Venv sind.

+0

Es scheint, dass das Paket [_readline_] (https://pypi.python.org/pypi/readline) veraltet ist. Es wurde in [_gnureadline_] (https://pypi.python.org/pypi/gnureadline) umbenannt, um einen Namenskonflikt mit dem Standardbibliotheksmodul aufzulösen. – Yoel