Nach dem Tweet von Justin Lilly habe ich mir bpython nochmals angesehen. Bis dato habe ich immer IPython genutzt, da es so elegant in das shell_plus Kommando der django command extensions integriert ist.
bpython bietet mir an sich alles, was ich bisher von IPython genutzt habe - Syntaxhervorhebung, Textvervollständigung mit Tab (readline), Historienfunktionen über einzelne Sessions hinweg. Für mich hat es aber einen "entscheidenden" Vorteil, es fühlt sich nach einem Tag irgendwie flotter und angenehmer an. Sicherlich kann IPython unendlich viel mehr, aber nichts davon habe ich bis dato genutzt.
Nachdem ich das Blogposting Using bpython shell with django (and some Ipython features you should know) gelesen hatte, konnte ich bpython mit einer .pythonrc Datei so konfigurieren, dass ich all das bekomme, was mir bisher das shell_plus Kommando bietet.
Ich beschränke mich hier auf die Konfiguration, die obigem Blogposting entliehen ist und von mir geringfügig angepasst wurde.
Schritt 1: Konfiguration einer Startup Datei für den Python Interpreter
Dazu muss man einfach die folgende Zeile in seine ~/.bashrc Datei einfügen, um die entsprechende Umgebungsvariable zu setzen.
Schritt 2: Startupdatei erstellen
Meine Anpassungen gegenüber dem Beispiel aus dem Blogposting bestehen lediglich darin, dass ich Modul für Modul vorgehe und zusätzlich noch eine Infozeile ausgebe, die mir anzeigt welche Modellklassen importiert wurden.
Hier das Ergebnis der Konfiguration. Die Warnung in den ersten Zeilen kann man ignorieren, da sie daher rührt, dass ich Python 2.6 mit mysql-python 1.2.2 aus den MacPorts benutze.
Alles in allem habe ich nun genau das, was ich aus der django command extensions Applikation am meisten benutze. Damit entfällt in der Regel die Notwendigkeit, dass ich diese Applikation in meine Projekte integriere.