bpython - a fancy interface to the Python interpreter

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

bpython ist eine REPL für Python, die mit Hilfe von Pygments etwas Farbe in Python bringt, was dann etwa wie folgt aussieht:

Bild

Die auf dem Screenshot sichtbaren Features im Überblick:
  • * Syntax-Highlighting (inklusive highlighten von zugehörigen Klammern)
    * Anzeigen der Funktionssignatur (inklusive Docstring und Hervorhebung des aktuellen Arguments)
    * (Auto-)Vervollständigung mit Vorschlägen, während man tippt (auch für Modulnamen)
    * "Rewind"-Funktion (eine Art Undo, falls man sich vertippt hat)
    * Die Möglichkeit, die Eingabe an einen Pastebin, der die LodgeIt-API unterstützt, zu schicken
    * Die Möglichkeit, die Eingabe zu speichern
    * Auto-Indentation
Das Aussehen ist über Theme-Files veränderbar und die Tasten-Shortcuts sind konfigurierbar.

Gestern ist die Version 0.9.5.1 von bpython erschienen. Neu in dieser Version ist die Möglichkeit, sich vom aktuellen Namen in der Eingabe per Tastendruck (F2) den Quelltext anzeigen zu lassen sowie eine rudimentäre Unterstützung für Python 3 (benötigt Pygments 1.1.1 und ist nicht in aller Ausführlichkeit getestet). bpython ist `easy_install`able sowie in den offiziellen Paketquellen von Debian und Ubuntu (Karmic Koala) sowie in einem PPA.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

Hallo,
Direkt neu ist bpython doch eigentlich nicht? Ich benutz es bereits seit einigen Monaten, und ziehe es persönlich IPython vor. Aber gut zu wissen wer dahinter steckt. ;)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Nein, direkt neu ist es nicht und ich bin auch nicht der ursprüngliche Entwickler von bpython. Initiiert wurde das Projekt von Bob Farrell und ich bin etwa mit Version 0.8.0 (IIRC) dazugestoßen. Da einige der neueren Features von mir implementiert wurden und bpython hier auch noch nicht wirklich vorgestellt wurde, war ich einfach mal so frei und habe das jetzt nachgeholt.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

@Trundle: super Tool, gefällt mir um einiges besser als ipython und wird sicherlich das Tool der Wahl für mich in Zukunft!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

SchneiderWeisse hat geschrieben:gefällt mir um einiges besser als ipython
Bei mir wars andersrum, also zumindest als ich bpython das letzte mal ausprobiert habe (was irgendwie schon etwas länger her ist, ich glaub via reddit). Da hat irgendwas nicht funktioniert und dann wars mit den Farben auch etwas zu viel des guten und es hat irgendwie zu viel Platz auf dem Bildschirm weggenommen.

Habe ich schon erwähnt, dass ich gerne einen bunten pdb hätte? So wie pdb++, nur halt in funktionierend ;) Das wäre echt ein Feature was mich überzeugen würde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

also, bei mir war ipython immer sehr träge und langsam, was ich von bpython nicht behaupten kann. Bei der Farbwahl kann ich dir nur zustimmen, da sind die Standardfarben sehr schlimm, obwohl man sie ändern kann (wobei mir das zu zeitaufwändig ist).
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Ich wundere mich, dass im 21. Jahrhundert Tools als Standard noch die Inversdarstellung benutzen und dann auch noch dunkelblau auf schwarz. Solche Screenshots würden mich auch vom besten Tool abhalten.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

mkallas hat geschrieben:Ich wundere mich, dass im 21. Jahrhundert Tools als Standard noch die Inversdarstellung benutzen
Ich sehe zwar in den Changeslogs, dass eine Colorscheme fuer weissen Hintergrund geben soll, aber wie die heisst, kann ich nicht rausfinden... :cry:
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
lunar

Direkt im Hauptverzeichnis des Release-Tarballs liegt eine "light.theme", die Du einfach nach "~/.bpython/" kopieren und in der Konfiguration eintragen müsstest. Ich habs nicht probiert, aber der Name hört sich doch schon mal gut an ;)

@mkallas: Die meisten Terminals haben halt noch schwarzen Hintergrund.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

@Leonidas: interessant wäre zu wissen, was nicht so gut funktioniert hat. Wobei sich, das mag jetzt sehr subjektiv sein, bpython in den letzten Versionen schon verbessert hat, finde ich.

@mkallas: Deshalb habe ich auch noch Fließtext dazu geschrieben und nicht nur den Screenshot gezeigt. Den Grund hat lunar ja bereits genannt. Wenn dein Terminal also nicht schwarz ist, dann ist bpython auch nicht schwarz. Der Rest der Farben gefällt dir nicht? Dann ändere sie eben. Wenn du aber die fünf Minuten nicht investierst, um ein Tool an deine individuellen Bedürfnisse anzupassen, dann kann man dir auch nicht helfen. Das liegt dann aber nicht am Tool.

@Rebecca: Ja, wie lunar sagte, "light. theme". Kann ich aber nicht sagen, wie das aussieht. Wenn dir das nicht gefällt und du ein viel hübscheres hast, darfst du das gerne einreichen und wir werden es bei der nächsten Version mitliefern.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Okay, ich hab's ueber aptitude installiert, und egal wie ich suche, die Theme finde ich nicht (ab Version 0.9.0 soll die dabei sein, ich hab 0.9.4). Wenn ich trotzdem die Theme auf "light" stelle, bekomme ich:

Code: Alles auswählen

[Errno 2] No such file or directory: '/home/rbreu/.bpython/light.theme'
Ich wuerde ja erwarten, dass auch in systemweiten Ordnern gesucht wird...

Naja, ich habe mir jetzt den Tarball runtergeladen, um an die Theme zu kommen und in meinen conf-Ordner kopiert. Sieht aber haesslich aus, da es die Hintergrundfarbe auf hellgrau setzt anstatt sie zu lassen wie sie ist (naemlich transparent). ... Ah, ok., background = d heisst das Zauberwort. 8)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

lunar hat geschrieben:@mkallas: Die meisten Terminals haben halt noch schwarzen Hintergrund.
Hmm, nicht unter Debian GNU/Linux mit KDE3.
Außerdem würde ich eben erwarten, dass ein Tool mit einem vernünftigen Standardwert kommt und ich es nicht erst dorthin konfigurieren muss. Invers ist so 1991!
Vorteil von ipython, den ich noch sehe: mehr Plattformen (manche müssen win32 benutzen).
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mkallas hat geschrieben:
lunar hat geschrieben:@mkallas: Die meisten Terminals haben halt noch schwarzen Hintergrund.
Hmm, nicht unter Debian GNU/Linux mit KDE3.
Das Standard-Theme vom GNOME-Terminal ist übrigens auch eine positivdarstellung. Ich stelle es aber trotzdem lieber auf negativ ein, warum auch immer.

@Trundle: ich schau es mir nachher nochmal an, aber vermutlich sind meine Einwände inzwischen schon obsolet geworden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@Trundle: Ich habe mir bpython gerade angesehen. Mittlerweile ist das wirklich ein brauchbarer Interpreter. Im Vergleich zu IPython finde ich insbesondere die Vervollständigung gelungen. Gut gelöst ist auch das Tastaturkürzel für den Blick in die Quellen, was die aktuelle Eingabe erhält.

Mir persönlich fehlt allerdings noch eine Möglichkeit, so wie bei IPython bestimmten Code bei jedem Start des Interpreter ausführen zu können. Ergänzend zum Kürzel für die Quellenanzeige wäre zudem noch ein Kürzel sinnvoll, bei dem nur der Docstring angezeigt wird.

@mkallas: Ist das wirklich die Standardeinstellung ist? Meine KDE 4-Konsole ist jedenfalls weiß auf schwarz, ohne das ich mich erinnern könnte, die Konfiguration verändert zu haben.

@Rebecca: Hast Du unter "/usr/share/doc/bpython*/" nachgesehen? Unter Gentoo zumindest findet sich dort eine Datei namens "light.theme". Ein systemweites Theme-Verzeichnis gibt es wohl nicht.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Da isses auch nicht. Wenn man apt-file glauben darf, gibt es ueberhaupt keine Datei mit diesem Namen, also in gar keinem Paket.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

@lunar: bpython führt beim Starten (wie die Vanilla-Python-REPL auch) die Datei aus, auf die die Umgebungsvariable ``PYTHONSTARTUP`` verweist.

@Rebecca: Nunja, es gibt kein systemweites Theme-Verzeichnis. Allerdings sollten die Beispielthemes schon installiert werden, was bei den Debian.Paketen bis jetzt nicht der Fall zu sein scheint. Vielleicht ist das aber mit dem neuen Paket für 0.9.5.1 behoben (sollte bald in den Repos landen, wurde heute vom Package-Maintainer erstellt).
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
lunar

Trundle hat geschrieben:@lunar: bpython führt beim Starten (wie die Vanilla-Python-REPL auch) die Datei aus, auf die die Umgebungsvariable ``PYTHONSTARTUP`` verweist.
Danke, das wusste ich nicht.

Edit: Allerdings funktioniert das nicht für "__future__"-Imports. Ein "from __future__ import print_function" in der $PYTHONSTARTUP-Datei hat keinen Einfluss auf den Interpreter.
Zuletzt geändert von lunar am Mittwoch 23. September 2009, 22:57, insgesamt 1-mal geändert.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:Das Standard-Theme vom GNOME-Terminal ist übrigens auch eine positivdarstellung. Ich stelle es aber trotzdem lieber auf negativ ein, warum auch immer.
Hallo!

Das ist jedes mal so ziemlich das Erste, was ich nach dem Installieren von Ubuntu mache. Ich stelle das Terminal auf "weiße Schrift auf Schwarzem Hintergrund" um. Umgekehrt, will und kann ich nicht mit einem Terminal arbeiten. ;-)

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

gerold hat geschrieben:
Leonidas hat geschrieben:Das Standard-Theme vom GNOME-Terminal ist übrigens auch eine positivdarstellung. Ich stelle es aber trotzdem lieber auf negativ ein, warum auch immer.
Hallo!

Das ist jedes mal so ziemlich das Erste, was ich nach dem Installieren von Ubuntu mache. Ich stelle das Terminal auf "weiße Schrift auf Schwarzem Hintergrund" um. Umgekehrt, will und kann ich nicht mit einem Terminal arbeiten. ;-)

lg
Gerold
:-)
Hatte ich früher auch immer, mittlerweile finde ich es anders herum angenehmer - insbesondere bei Laptop und schlechte Lichtverhältnissen.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

lunar hat geschrieben:@mkallas: Ist das wirklich die Standardeinstellung ist? Meine KDE 4-Konsole ist jedenfalls weiß auf schwarz, ohne das ich mich erinnern könnte, die Konfiguration verändert zu haben.
Ist iirc seit KDE4 so.
Antworten