Tkinter unter Ubuntu

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pythonierer
User
Beiträge: 41
Registriert: Samstag 13. Januar 2007, 15:26

Guten Abend!

Ich habe heute Ubuntu Linux mit Wubi neben Windows XP installiert und kann dieses natürlich nur richtig sinnvoll nutzen, wenn zum Beispiel auch Python und Tkinter gehen. So hab ich mir gleich über Synaptic Python 2.5, Tkinter, tcl 8.3, tcl 8.4 und PIL runtergeladen und installiert. Nun kann ich letztere im Terminal auch über "import Tkinter" oder "import ImageTk" importieren und dort ebenfalls ein Fenster mit "root=Tk()", "root.mainloop()" usw. erstellen. Wenn ich aber ein .pyw-File doppelt anklicke, in dem der gleiche Code steht, und dann auf "Run" drücke, erscheint überhaupt nichts. Obwohl alles in der Python-Konsole funktioniert. Wisst ihr, woran das liegen könnte?

Danke schonmal für euer Interesse und hoffentlich bis bald, schließlich gefällt mir Ubuntu ansonsten ausgezeichnet (hab auch schon Skins, Codecs usw. installiert).
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Pythonierer hat geschrieben:Wenn ich aber ein .pyw-File doppelt anklicke, in dem der gleiche Code steht, und dann auf "Run" drücke, erscheint überhaupt nichts.
"Run"? Wo?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Pythonierer
User
Beiträge: 41
Registriert: Samstag 13. Januar 2007, 15:26

Naja, wenn ich auf die .pyw doppelklicke kommt ja ein Dialog mit der Auswahl "Run in Terminal", "Display", "Cancel" und "Run". Ich hab auch schon "Run in Terminal" ausprobiert, dann ist letzteres für eine zehntelsekunde oder so erschienen und auch gleich wieder verschwunden. Ich verwende standardmäßig den Nautilus-Browser. In IDLE geht es übrigens auch fehlerfrei, hab ich gerade getestet. Kann also nicht am Code liegen, vielleicht ist es ein Problem mit dem Mainloop oder Nautilus.

PS: Tkinter sieht ja auf Linux echt fatal aus, ich werd mir dann gleich noch den Wrapper für Tile holen, damit das ansehnlicher wird. Auf Windows ist es gar nicht so schlecht.

Ich kann natürlich auch versuchen, meine Programme aus Wine heraus laufen zu lassen, aber das wäre ja die hässlichste Variante auf Erden. :cry:
lunar

Pythonierer hat geschrieben:Kann also nicht am Code liegen, vielleicht ist es ein Problem mit dem Mainloop oder Nautilus.
Weder noch, sondern PEBCAK. Unter Linux funktioniert die Ausführung von Programmen eben anders als unter Windows. Grob gesagt, musst du die Datei ausführbar machen, indem du das x-Bit setzt, und anschließend noch den Shebang setzen. Wie das geht, steht in diversen Tutorials, Wikis und Docs im Netz. Ein guter Anlaufpunkt ist das Ubuntuusers Wiki.
PS: Tkinter sieht ja auf Linux echt fatal aus, ich werd mir dann gleich noch den Wrapper für Tile holen, damit das ansehnlicher wird. Auf Windows ist es gar nicht so schlecht.
Das Aussehen ist nur der offensichtlichste Grund, warum man Tkinter nicht verwenden sollte. Andere Gründe gegen Tkinter gibt dir die Forumssuche. Solltest du ernsthaft GUI-Programmierung tätigen wollen, ist die Benutzung eines der richtigen GUI-Toolkits (Gtk, wxWidgets, Qt 4) nahezu zwingend erforderlich.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Pythonierer hat geschrieben:Ich kann natürlich auch versuchen, meine Programme aus Wine heraus laufen zu lassen, aber das wäre ja die hässlichste Variante auf Erden. :cry:
Gegen Tkinter gibt die sich sicher auch nicht mehr viel.

Nimm besser, wie Lunar meinte, ein modernes Toolkit und kein Relikt alter Zeiten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

lunar hat geschrieben:Unter Linux funktioniert die Ausführung von Programmen eben anders als unter Windows. Grob gesagt, musst du die Datei ausführbar machen, indem du das x-Bit setzt, und anschließend noch den Shebang setzen.
Ich bevorzuge eine andere Lösung: Im Dateimanager eine Verknüpfung zwischen Dateien mit der Endung .pyw und dem python-Interpreter herstellen. Dann brauche ich kein Shebang und kein x-Bit. Klick auf pyw-Datei im Dateimanager genügt und die Anwendung startet.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

pütone, dann tut das bei dir. Und sobald du das ganze weiter gibst geht es da nicht mehr. Sobald du ein CGI schreibst geht das nicht mehr. Der Shebang ist definitiv der richtige weg. Damit kannst du dein Script dann wie jede andere Anwendung verwenden. ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
lunar

pütone hat geschrieben:
lunar hat geschrieben:Unter Linux funktioniert die Ausführung von Programmen eben anders als unter Windows. Grob gesagt, musst du die Datei ausführbar machen, indem du das x-Bit setzt, und anschließend noch den Shebang setzen.
Ich bevorzuge eine andere Lösung: Im Dateimanager eine Verknüpfung zwischen Dateien mit der Endung .pyw und dem python-Interpreter herstellen. Dann brauche ich kein Shebang und kein x-Bit. Klick auf pyw-Datei im Dateimanager genügt und die Anwendung startet.
Bitte poste diese "Lösung" zur Ausführung von Python-Dateien mal in einer der Linux-Newsgroups... auf diesen Flamewar freue ich mich schon ;)

Im Ernst, dieser Weg ist schlicht falsch. Zum einen gibt es kein einheitliches System für Dateityp-Verknüpfungen unter den verschiedenen Desktopumgebungen. Auf der Konsole existiert sowas gar nicht (es sei denn, man nutzt fish oder ähnlichen Murks). Zum anderen ist dieser Ansatz bei Skripten, die Kommandozeilen-Argumente erfordern, von vorneherein zum Scheitern verurteilt. Außerdem können Skripte auf diese Weise nicht von anderen Prozessen ausgeführt werden.

Außerdem nutzt nicht jeder diese netten graphischen Dateimanager ;)

Der Shebang und das x-Bit sind aus guten Grund der bevorzugte Weg zum Ausführen von Python-Skripten. Nichts für ungut, aber auch dir scheinen hier gewissen Linux-Grundlagen zu fehlen ;)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

So sehr ich das Forum ja schätze für schnelle Antworten und fundierte Informationen, so sehr bedaure ich gelegentlich die Tendenz, die Postings anderer erst einmal zu kritisieren - kommt natürlich auch darauf an, wer gepostet hat.

@lunar:

Ich habe doch gar nicht gesagt, dass dein Weg schlecht wäre oder meiner besser. Ich habe nur gesagt, was ich bevorzuge, und zwar aus guten Gründen:

Ich kann meinen Dateimanager so wie beschrieben konfigurieren, und zwar auch so, dass er bei pyw-Dateien kein Konsolenfenster öffnet, bei py-Dateien schon. Also bekommen GUI-Anwendungen von mir die Endung pyw und ich muss mich nicht nach jeder Veränderung am Skript wieder darum kümmern, ob das x-Bit gesetzt ist oder nicht. Einfach klicken und es startet. So brauche ICH das. Natürlich ist die Lösung abhängig vom Dateimanager, und natürlich ist das nicht der sinnvolle Weg, wenn man ein Programm an andere weitergibt. All das habe ich auch nicht behauptet.

Aber warum soll ich den "aus guten Gründen bevorzugten Weg zum Ausführen von Python-Skripten" auf meinem lokalen System einsetzen, wenn es für mich einen komfortableren Weg gibt? Daraus auf das Fehlen von Linxu-Grundlagen zu schließen .. naja.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Lunar hat geschrieben:Zum einen gibt es kein einheitliches System für Dateityp-Verknüpfungen unter den verschiedenen Desktopumgebungen.
Gibt es:
http://standards.freedesktop.org/shared ... ec/latest/ :wink:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

pütone: Naja, dann hast du vlt. deinen Post etwas ungluecklich formuliert. Da der OP Linux-Neuling ist, haette er den Eindruck bekommen koennen, dass deine private Spezialloesung allgemein gueltig ist.

PS: Das x-Bit sollte sich nicht aendern, wenn du die Datei editierst.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
lunar

veers hat geschrieben:
Lunar hat geschrieben:Zum einen gibt es kein einheitliches System für Dateityp-Verknüpfungen unter den verschiedenen Desktopumgebungen.
Gibt es:
http://standards.freedesktop.org/shared ... ec/latest/ :wink:
Ok, ich verbessere mich: Es gibt in der Realität kein einheitliches System für Dateityp-Verknüpfungen ;)

KDE und Gnome kümmern sich nämlich trotzdem nicht darum ;)

Und irgendwo macht das auch wenig Sinn. PDF-Dateien kann ich im Konqueror direkt mit dem KPDF-KPart anzeigen lassen. Gnome dagegen kann mit KParts nicht wirklich etwas anfangen ;)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Rebecca hat geschrieben:Naja, dann hast du vlt. deinen Post etwas ungluecklich formuliert. Da der OP Linux-Neuling ist, haette er den Eindruck bekommen koennen, dass deine private Spezialloesung allgemein gueltig ist.
Ich finde gerade, dass ich ihn erkennbar nicht allgemeingültig formuliert habe, sondern bewusst immer davon geschrieben habe, wie "ich" es mache.
Hätte ja sein können, dass der OP das so bei sich auch mal ausprobieren wollte, ob es funktioniert.
Rebecca hat geschrieben:Das x-Bit sollte sich nicht aendern, wenn du die Datei editierst.
Hast Recht!

Da ich häufiger nach Änderungen (sicherheitshalber) unter einem neuen Dateinamen abspeichere, habe ich das Problem mit dem x-Bit dann trotzdem.
lunar

pütone hat geschrieben:Da ich häufiger nach Änderungen (sicherheitshalber) unter einem neuen Dateinamen abspeichere, habe ich das Problem mit dem x-Bit dann trotzdem.
Biete es sich da nicht an, einfach eine Versionsverwaltung zu nutzen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Ok, ich verbessere mich: Es gibt in der Realität kein einheitliches System für Dateityp-Verknüpfungen ;)

KDE und Gnome kümmern sich nämlich trotzdem nicht darum ;)
Bin zwar momentan nicht an GNOME, weil ich Safari anteste, aber dem System Admin Guide nach zu Urteilen versteht GNOME durchaus XDG shared mime. Wie das bei KDE4 ist weiß ich nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Leonidas hat geschrieben:
lunar hat geschrieben:Ok, ich verbessere mich: Es gibt in der Realität kein einheitliches System für Dateityp-Verknüpfungen ;)

KDE und Gnome kümmern sich nämlich trotzdem nicht darum ;)
Bin zwar momentan nicht an GNOME, weil ich Safari anteste, aber dem System Admin Guide nach zu Urteilen versteht GNOME durchaus XDG shared mime. Wie das bei KDE4 ist weiß ich nicht.
Iirc versteht auch KDE 3 schon shared mime. Allerdings verwalten beide DEs eigene Mimedatenbanken, und zwar aus den eben angesprochenen Gründen heraus. Wenn ich im Kontrollzentrum einstelle, 'application/pdf' mittels der KPDF-KPart-Komponente einzubetten, kann Gnome damit nämlich wenig anfangen ;)
Antworten