[Anfängerfrage]Problem:Python Scripte über D-Klick ausführen

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
Schalterdruecker
User
Beiträge: 1
Registriert: Donnerstag 18. Juni 2015, 21:15

Guten Abend liebe Forengemeinde,

ich programmiere jetzt schon ein ganzen weilchen mit Python unter Ubuntu und komme mit der Syntax etc. gut klar. Bisher habe ich alle meine Scripte so programmiert, dass ich sie übers Terminal aufrufe. Nun habe ich aber aus gegebenem Anlass das Problem, dass ich ein Scipt schreiben muss, welches mit einer GUI arbeitet -- und das ganze auch noch auf einem Raspberry Pi mit Wheezy.

Ich habe mir also ein paar Tutorials angeschaut und erstmal versucht, mit tkinter ein Fenster zu generieren. Der Quellcode steht unten an:

Code: Alles auswählen

#!/usr/bin/python

import tkinter
top = tkinter.Tk()
#space for code
top.mainloop
Wie man sieht, ist das ganze recht simpel.

Ich habe die Datei mit chmod +x ausführbar gemacht. Nichtsdestotrotz kann ich die Datei nicht per Doppelklick ausführen, über das Dialogfeld "Öffnen mit" werden mir nur Testeditoren oder Wine angeboten. Das ganze als Anwendung öffnen geht irgendwie nicht. Ich bin jetzt schon einmal quer durchs Forum gewildert, finde aber keine Frage, die mein Problem zufriedenstellend aufgreift/löst ...
Ganz nebenbei hätte ich hier noch die Frage, ob es möglich ist, anstelle des #!usr/bin/python dem System auch irgendwie sagen zu können, dass die Datei im (LX)Terminal zu öffnen ist.

Ich will keine Patentlösung, ein Stoß in die richtige Richtung (evtl. ein Link oder Guide) reicht mir völlig.

Grüße,
Manuel
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Schalterdrucker
`mainloop` ist eine Funktion, die ausgeführt werden muss. Es sollte also ``top.mainloop()`` heißen. Der shebang hat nichts damit zu tun, wo Dein Skript ausgeführt wird. Mit ``#!/usr/bin/python`` informierst Du das System lediglich darüber, dass das Skript über den Python Interpreter ausgeführt werden muss. Und wenn Du möchtest, dass die Ausführung innerhalb eines Terminals stattfinden soll, dann verwende kein GUI Framework bzw. leite die Ausgabe an `stdout` weiter, was die `print` Funktion z. B. so macht.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@mutetella: Man kann ja trotzdem wollen, dass ein Programm im Terminalfenster aufgerufen wird und von dort aus die grafische Oberfläche gestartet wird. Dazu legt man unter Linux meistens eine *.desktop-Datei an. Entweder per Hand oder unter Nutzung der Möglichkeiten seiner Desktop-Umgebung (z.B. KDE oder GNOME).
BlackJack

Mal so nebenbei passt die She-Bang-Zeile nicht so ganz zum Code weil der `tkinter` importiert (Python 3) aber versucht den mit ``/usr/bin/python`` (Python 2) auszuführen.
cheffe
User
Beiträge: 12
Registriert: Donnerstag 21. Mai 2015, 22:25

ich würde das thema nochmal aufgreifen, denn ich habe anscheinend immernoch genau das gleiche problem.
ich arbeite jedoch unter linux mint xfce 16

was genau muss denn z.B. in die erste zeile?
#!/usr/bin/python
oder
#!/usr/bin/python3.4
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Je nachdem mit welchem Programm dein Quelltext ausgefuehrt werden soll.
Ersteres wird wahrscheinlich ein Symlink auf ein Python2 sein, letzteres offensichtlich ein Python3.

Letztlich aber weder noch:

Code: Alles auswählen

#python2
#!/usr/bin/env python2

#python3
#!/usr/bin/env python3
Antworten