wxPython und SPE: Wie bekomme ich Fehlermeldungen zu fassen?

Plattformunabhängige GUIs mit wxWidgets.
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Samstag 17. Februar 2007, 19:08

Hallo zusammen,

ich bin gerade dabei, mich in Python einzuarbeiten und daher auch neu im Forum.
Ich benutze Python 2.4, wxPython 2.8 (unicode) und SPE 0.8.3.c unter Win2K.

Wahrscheinlich werde ich in den nächsten Wochen/Monaten einige, hin und wieder, reichlich dämliche Anfängerfragen stellen. Bitte habt Nachsicht. :)

Nun aber gleich zu meiner ersten DAU-Frage:
Eine Forumsuche hat mir dazu nicht weiter geholfen.
Ich hab eine kleine Testapplikation, die erstmal nur ein leeres Frame anzeigen soll. Wenn ich das Programm in SPE starte, sehe ich auch kurz das Frame und in dem Frame stehen Exceptions bzw. Fehlermeldungen. Aber das Frame wird sofort wieder geschlossen, bevor ich Zeit zum lesen habe. Ich habe in SPE die Option "Output auf Shell umleiten" aktiviert, das hilft aber wohl nicht innerhalb des Frames.

Kann mir jemand einen Tipp geben, wie ich die Fehlermeldungen zu lesen bekomme?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Sonntag 18. Februar 2007, 11:08

EDIT:
Willkommen im Python-Forum.
Jadawin hat geschrieben:[...]
Kann mir jemand einen Tipp geben, wie ich die Fehlermeldungen zu lesen bekomme?
In SPE kein Ahnung. Aber warum führst du dein Script nicht zum testen in eine Konsole aus, oder steigst gleich auf eine vernümftige IDE um?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 18. Februar 2007, 12:46

Als ich mir SPE mal kurz angeschaut habe, kam es mir garnicht so übel vor...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 18. Februar 2007, 13:42

Hallo Jadawin, willkommen im Forum.

wx leitet den Fehleroutput in ein einenes Fenster um - wenn du das nicht willst musst du die Applikation mit ``wx.PySimpleApp(False)`` starten. Möglich aber auch das der Parameter ``True`` ist - ich habe wxPython schon einige Zeit nicht mehr benutzt ud kann mich daher nicht mehr so genau erinnern.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Sonntag 18. Februar 2007, 14:34

Dank für Eure Antworten.

@Leonidas:
Danke für den Hinweis. Das wars. Ich hatte meine Applikation von wx.App abgeleitet. Mit wx.PySimpleApp als Vorfahre sehe ich nun die Fehlermeldungen in der Shell. :-)

@sape:
Wenn ich mein Script in der Konsole testen würde, dann brauche ich aber auch keine IDE, sondern könnte gleich mit Notepad und Eingabeaufforderung arbeiten. Abgesehen davon, hätte es mir bei dem vorliegenden Problem wahrscheinlich kein bisschen geholfen. (siehe oben)
Trotzdem danke für den Vorschlag. Bei anderen Problemen ist der Konsolentest sicher hilfreich.

Und wegen der vernünftigen IDE ...
Kennst Du SPE? Wie mir scheint, nicht. Ich habe mir einige (nicht alle) IDEs angeschaut und SPE gefiel mir, nach meinen Einsatzkriterien, am besten.
Wenn Du einen besseren Vorschlag hast, nur raus damit.
Coding rule 1: A Computer will only do what you told him to do, not what you want him to do.
Therefore: Very often the problem sits right in front of the keyboard.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Sonntag 18. Februar 2007, 16:21

@sape
ich kann es nicht wirklich nachvollziehen,
wieso du immer wider so schwache Aussagen machen musst.

mal aufgepasst
sape hat geschrieben:In SPE kein Ahnung........
dann der Schluss
sape hat geschrieben:oder steigst gleich auf eine vernümftige IDE um?
Was soll mir das sagen?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Sonntag 18. Februar 2007, 16:51

Jadawin hat geschrieben:[...]
Wenn Du einen besseren Vorschlag hast, nur raus damit.
Als kostenlose IDE: Eclipse + PyDev Plugin, DrPython
Kommerzielle: WingIDE, Komodo, ...

Editoren: Vim?, Emacs?, jEdit, ...

Alle genanten konnte mich überzeugen (bis auf Emacs). SPE gehört auch zu den Kandidaten die mich nicht sonderlich überzeugen konnten.

lg

EDIT: Ach ja, hätte ich beinah vergessen: Eric4 ist auch sehr gut.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Sonntag 18. Februar 2007, 16:55

pyStyler hat geschrieben: mal aufgepasst
sape hat geschrieben:In SPE kein Ahnung........
dann der Schluss
sape hat geschrieben:oder steigst gleich auf eine vernümftige IDE um?
Was soll mir das sagen?
Das soll dir sagen das ich nicht weis wie man das in SPE macht. Der Satz das er auf eine vernümftige IDE umsteigen sollte, bedeutet das er auf was besseres umsteigen soll und suggeriert auch das ich mich sehr wohl mit SPE auseinandergesetzt habe, sonst würde ich ja so eine Vorschlag nicht machen.. -- Nur weil ich nicht weiß wie man eine Sache in X macht, bedeutet das noch lange nicht das ich nicht schon mal mit X gearbeitet habe.

Zu deinem Tenor passend: Gewiss, die natürliche Sprache erfordert eine große Abstrahierungsfähigeit...

EDIT: Korrektur
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 18. Februar 2007, 17:02

Kritikpunkt war wohl, dass du, ohne Argumente zu bringen oder überhaupt darzustellen warum, SPE als "nicht vernünftige" IDE bezeichnest.

Ich biete auch immer gern Emacs an, aber nur wenn jemand explizit nach einer anderen IDE fragt.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Montag 19. Februar 2007, 10:36

Eigentlich wollte ich hier keine Diskussion über die beste IDE für Python anzetteln, weil da eh' jeder seine eigene Meinung dazu hat. Aber sei's drum ...
sape hat geschrieben:Als kostenlose IDE: Eclipse + PyDev Plugin, DrPython
Eclipse kenne ich. Es gibt keine bessere IDE für die Java-Entwicklung. Das PyDev-Plugin hat einige Ecken und Kanten und ist in meiner "internen" Rangliste auf dem gleichen Platz wie SPE gelandet. SPE hat dann wegen "klein und schnell" gewonnen. Das heissts aber nicht, dass ich für immer bei SPE bleibe.

DrPython hab ich mir nicht genauer angeschaut, weil ich da erst etliche Plugins brauche, um die ganzen Funktionalitäten zu haben, die ich möchte. Auf lange Sicht birgt so ein pluginbasiertes System auch die Gefahr der Inkombatibilität und Instabilität.
sape hat geschrieben:Kommerzielle: WingIDE, Komodo, ...
Komerzielle IDEs scheiden schon mal aus. Ich seh' gar nicht ein, für eine IDE Geld zu bezahlen (oder gar Raubkopien zu nutzen), wenn es auch sehr gut mit freien Alternativen geht.
sape hat geschrieben:Editoren: Vim?, Emacs?, jEdit, ...
Ich hätte gern 'ne IDE und keine Editor-und-Kommandozeilen-Lösung.
Ich weiss, dass Vim & Co mächtige Werkzeuge sein können und für die Entwicklung von Bash-Scripts hab ich auch schon erfolgreich Vim benutzt. Aber für komplexere Sachen ist mir das zu unintuitiv. Wohlgemerkt: intuitiv != bunte Knöpfe und Fensterchen. Es gibt auch intuitive Tools ohne GUI. Aber Vim oder Emacs gehört FÜR MICH nicht dazu.
sape hat geschrieben:EDIT: Ach ja, hätte ich beinah vergessen: Eric4 ist auch sehr gut.
Eric hab ich mir zugegebenermassen nicht angeschaut. Ich dachte, der läuft nur unter Linux.

Ist aber egal. Vielleicht schwenke ich doch zu Eclipse um. Das hat nämlich gestern einen Pluspunkt gegenüber SPE gemacht. Ich kann in Eclipse in der Run-Konfiguration die Datei angeben, die gestartet wird, ohne dass ich die im Editor geöffnet haben muss. Das nervt bei SPE bissel, dass ich für jeden Testlauf zur Hauptdatei wechseln muss. (Vielleicht hab ich auch das Feature bei SPE noch nicht entdeckt, aber so gross is SPE ja nu' auch wieder nicht.)
Coding rule 1: A Computer will only do what you told him to do, not what you want him to do.
Therefore: Very often the problem sits right in front of the keyboard.
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Montag 19. Februar 2007, 11:42

sape hat geschrieben:Der Satz das er auf eine vernümftige IDE umsteigen sollte, bedeutet das er auf was besseres umsteigen soll und suggeriert auch das ich mich sehr wohl mit SPE auseinandergesetzt habe, sonst würde ich ja so eine Vorschlag nicht machen..
Also ehrlich gesagt, suggerierte mir der Satz, dass Du eine andere IDE als SPE hast, damit glücklich bist und Deine IDE für die einzig Wahre hälst.
Und da Du keine anderen IDEs benannt hast, kam das bissel arrogant rüber. Ich bin aber relativ sicher, dass das von Dir nicht so gemeint war.

Meiner Erfahrung nach muss man in Forumsen, Mails oder ähnlichem sehr genau formulieren, was man wie meint, weil man bei geschriebenen Worten nicht vorraussetzen kann, dass der Leser es auch so versteht, wie der Schreiber es gemeint hat. Im persönlichen Gespräch hat man dafür noch Mittel wie Mimik, Gestik, Betonung, usw., aber in geschriebenen Dialogen fällt sowas alles weg.

Aber das wird jetzt zu sehr OT ... schönen Tag noch.
Coding rule 1: A Computer will only do what you told him to do, not what you want him to do.
Therefore: Very often the problem sits right in front of the keyboard.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Montag 19. Februar 2007, 13:43

Jadawin hat geschrieben: DrPython hab ich mir nicht genauer angeschaut, weil ich da erst etliche Plugins brauche, um die ganzen Funktionalitäten zu haben, die ich möchte. Auf lange Sicht birgt so ein pluginbasiertes System auch die Gefahr der Inkombatibilität und Instabilität.
Hi, hier möchte ich einhaken! :)

Der Projektleiter wollte das Programm ganz schlank halten.
Es ist beim Startup und sonst auch etwas schneller, und man braucht
nicht soviel code zu warten.

Jeder der ein Plugin entwickelt oder installiert, ist für das irgendwie
"selbst verantwortlich", und das finde ich gut und richtig so.

Klar kommt es sogar oft zu Inkompatibilitäten (Das "core" Programm hat sich geändert, bietet andere, nicht kompatible Schnittstellen) an.
Aber auch wxPython ändert sich dauernd ein bisschen, so gesehen
ist auch das Kernprogramm betroffen.

Ich bin ein Gegner des Einfrierens in ein exe Programm. Viel up- und download, kann Fehler, oder tracebacks nicht gut erkennen, geht auch mit plugins nicht gut, ...

Daher versuche ich immer, das Programm mit der neuesten Version lauffähig zu halten, ohne auf Abwärtskompatibilität zu sehr zu achten.

Und ausserdem macht das Schreiben von plugins Spass und man kann dem Editor eigene Funktionalitäten hinzufügen.
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Montag 19. Februar 2007, 17:19

@Francesco:
Ich finde den Ansatz von DrPython ja gar nicht schlecht und sehe natürlich auch die Vorteile eines pluginbasierten Systems. Es war mir nur als Python-Neuling zu aufwendig, erst alle Plugins (in der passenden Version) zusammen zu sammeln, diese dann zusätzlich zum Kernprogramm zu installieren, zu konfigurieren und aufeinander abzustimmen. Zugegeben; da ich es nicht gemacht habe, weiss ich auch nicht, wie gross der Aufwand tatsächlich ist. Es hat mich nur für den Anfang abgeschreckt, weil ich ja Python lernen und mich nicht erst lange mit den Werkzeugen herumschlagen möchte. Daher bevorzuge ich erstmal eine All-In-One-Lösung.

Ansonsten ist das Für und Wider doch eine recht philosophische Frage, die jeder für sich selbst beantworten muss.
Am Ende zählt doch nur, das man mit vertretbarem Aufwand brauchbare Software erzeugen kann. 8)
Coding rule 1: A Computer will only do what you told him to do, not what you want him to do.
Therefore: Very often the problem sits right in front of the keyboard.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Montag 19. Februar 2007, 19:25

Jadawin hat geschrieben:@Francesco:
Ich finde den Ansatz von DrPython ja gar nicht schlecht und sehe natürlich auch die Vorteile eines pluginbasierten Systems. Es war mir nur als Python-Neuling zu aufwendig, erst alle Plugins (in der passenden Version) zusammen zu sammeln, diese dann zusätzlich zum Kernprogramm zu installieren, zu konfigurieren und aufeinander abzustimmen. Zugegeben; da ich es nicht gemacht habe, weiss ich auch nicht, wie gross der Aufwand tatsächlich ist. Es hat mich nur für den Anfang abgeschreckt, weil ich ja Python lernen und mich nicht erst lange mit den Werkzeugen herumschlagen möchte. Daher bevorzuge ich erstmal eine All-In-One-Lösung.

Ansonsten ist das Für und Wider doch eine recht philosophische Frage, die jeder für sich selbst beantworten muss.
Am Ende zählt doch nur, das man mit vertretbarem Aufwand brauchbare Software erzeugen kann. 8)
Hallo jadawin,

ich gebe dir recht, sagen wir so, DrPython ist am Anfang ohne den ganzen Zusatzfunktionen, aber durchaus brauchbar.

Am Anfang würde ich eh mit Idle rumexperimentieren, das ist stabil
und hat die wichtigsten Funktionen.

Man könnte ja die ganzen plugins in einem Download installieren oder hineinpacken, hm, muesste man sich überlegen.

Problem ist auch, dass jeder Entwickler quasi für seine Plugins selbst verantwortlich ist, und das ist das schöne, da kann man sich herausreden,
so auf die Art, das geht mich nichts an.

Pype, spe, boa und ulipad wären auch noch eine Alternative.
Oder eric3 sieht grossartig und nett aus.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Montag 19. Februar 2007, 20:16

Jadawin hat geschrieben:
sape hat geschrieben:Kommerzielle: WingIDE, Komodo, ...
Komerzielle IDEs scheiden schon mal aus. Ich seh' gar nicht ein, für eine IDE Geld zu bezahlen (oder gar Raubkopien zu nutzen), wenn es auch sehr gut mit freien Alternativen geht.
Sehe ich genau so. Hab das nur der vollständigkeit erwähnt.
Jadawin hat geschrieben:
sape hat geschrieben:EDIT: Ach ja, hätte ich beinah vergessen: Eric4 ist auch sehr gut.
Eric hab ich mir zugegebenermassen nicht angeschaut. Ich dachte, der läuft nur unter Linux.
Nope, ich habe das damals auch unter Windows, mit Tipps von Leonidas, zum Laufen gekriegt. Hier im Forum muss irgendwo noch ein Tutorial von mir rumschwirren wie man Eric4 für Windows kompiliert kriegt.
Jadawin hat geschrieben: Ist aber egal. Vielleicht schwenke ich doch zu Eclipse um. Das hat nämlich gestern einen Pluspunkt gegenüber SPE gemacht. Ich kann in Eclipse in der Run-Konfiguration die Datei angeben, die gestartet wird, ohne dass ich die im Editor geöffnet haben muss. Das nervt bei SPE bissel, dass ich für jeden Testlauf zur Hauptdatei wechseln muss. (Vielleicht hab ich auch das Feature bei SPE noch nicht entdeckt, aber so gross is SPE ja nu' auch wieder nicht.)
Jepp :D Nun weißt du warum ich meinte "richtige ide". Das ist genau das was ich in so vielen IDEs vermisse. Ich will ein Script mit nur einen klick starten ohne erst rumzuswitschen. Und ich will auch nicht das Script erst geöffnet haben oder im Tab-Fenster im Fokus haben um es auszuführen :) -- Oft ist es bei mir das ich ein Huptscript habe das ich starte aber Änderungen/Tests an anderen Scripts mache. Da finde ich das richtig lästig erstmal zum Huptscript zu wechseln um es zu Starten. IN Eclipse kein Problem einfach den gewünschten Run auswählen und dann kann man beliebig oft das Script (Obwohl es nicht Fokussiert/Ausgewählt/geöffnet ist) mit STRG+F11 starten.

Mal ein par weitere Argumente:
1. Dan kommt noch die geniale Auto-Code-Vervollständigung dazu. Sei mal Ehrlich hast Du so eine geniale ACV auch in SPE? PyDev berücksichtigt nicht nur der Scope der Datei sondern auch alle Packages die du in System PYTHONPATH, unter Benutzervorgaben->Pydev->Interpreter - Python, eingetragen hast UND deine eigenen Packages die du in deinem Projekt definiert hast.
Beispiel:

Code: Alles auswählen

import sys
Wenn ich jetzt sys. eintippe und danach STRG-Space wird mir erstmal der gesamte Inhalt angezeigt. Ich kann z.B. auch sys.g und dann STRG+Space drücken und schon wird mir

Code: Alles auswählen

getcheckinterval
getdefaultencoding
getfilesystemencoding
getrecursionlimit
getrefcount
getwindowsversion
Angezeigt wo ich mir bequem die Docstrings ansehen kann. Ein klcik auf eines der angezeigten dinge und schon wird aus sys.g z.B. sys.getdefaultencoding(). Aus sys. und __excepthook__ angeklickt wird sys.__excepthook__(exctype, value, traceback). Das schöne ich das ich jede der 3 Parameter anklicken kann und er dann komplett Selektiert ist und ich das dann mit dem passenden wert überschreiben kann.

Joa, viele andere IDE/Editoren bieten auch eine ACV aber viele berücksichtigen NUR den Scope der Datei, was ich sehr einschränkend finde.

2. Tamplates
a. ein main getippt gefolgt von STRG+SPACE führt zu folgendem:
``if __name__ == '__main__':``

b. Wenn man hinter ini STRG+Space drückt wird aus:

Code: Alles auswählen

class Foo(onject):
    ini

Code: Alles auswählen

class Foo(onject):
    def __init__(self):
c. Wenn man jetzt hinter dem Doppelpunkt der __init__ methode STRG+1 dürck, Kommt eine Liste mit Assign parameters to attributes und make docstrings. Wählt man nun Assign... aus dann wird aus dem hier:

Code: Alles auswählen

class Foo(onject):
    def __init__(self, arg1, arg2, arg3):
Folgendes:

Code: Alles auswählen

class Foo(onject):
    def __init__(self, arg1, arg2, arg3):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3
d. Viele weitere Vervollständigungen :) Und wem die ca. 30 Vordefinierten nicht reicht, kann sich auch eigene machen.

Das kann man natürlich auch alles in Vim konfigurieren. So habe ich z.B. letztens in einem Thread gesehen das BlackBird in seinem Vim automatisch mit Solchen sachen Propertie-Defs erzeugne kann.

3. Was jetzt nichts direkt mit Pydev zu tun hat:
Subclipse finde ich auch ziemlich nett. Integriert SVN in einer schicken Oberfläche direkt in Eclipse mit der wichtigsten Funktionalität.

4. Und eben der Rest den Eclipse schon von Haus aus bietet.

lg
Antworten