ubuntuusers.de

Python Konsolen-Script über Gnome-Starter (Doppelklick) starten und anschauen

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

thaub

Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

Leider konnte ich auf die Schnelle keine Lösung für mein Problem finden.

ich möchte folgendes Python-Script per Doppelklick auf ein Desktop-Icon starten und in einem Terminal das Ergebnis betrachten, anschließend über den Close-Button im Fenster schließen.

1
2
3
4
5
6
7
#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "Hallo, Welt!"

# hier endet das Script in der Konsole, eine Eingabe-Aufforderung
# oder Endlosschleife ist aus verschiedenen Gründen nicht möglich 

Der naive Versuch über Rechtsklick einen Starter anzulegen Typ: "Anwendung in Terminal" und Befehl: "/home/PfadzumProgram/scriptname.py" bringt nur ein kurzes Aufflackern. Mit Befehl: xterm -hold -e "blablabla.py" werden zwei Fenster geöffet, was zielmlich unschön ist. Weiß jemand eine Lösung?

Die Forum-Suche hat für mich kein braucbares Ergebnis gezeigt.

Vielen Dank, Thaub

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

Aber du könntest es immer noch mit einem anschließenden Befehl koppeln ... vielleicht read? Klappt auch nicht.

Da es offenbar dein Skript ist, gehe doch den einfachen Weg und füge am Ende noch eine Abfrage ein, sodass das Programm solange wartet, bis du eine Taste drückst und sich dann beendet. Optimalerweise würde ich das mit einer Kommandozeilenoption koppeln, damit das Skript ggf. auch einfach nur durchlaufen kann. Ups, sorry. Die so schlecht lesbaren Kommentare nicht ganz gelesen.

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

Hechel, du antwortest schneller als ich!

Die mögliche noch ungetestete getestete Lösung ist ein Bash-Start-Script:

1
2
3
#!/bin/bash
~/blabla.py
read

Aber damit brauch ich 2 Scripts, statt einem. Das ist ja irgendwie blöd!

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Mal probiert, einen stinknormalen Launcher mit xterm -hold -e foo.py zu machen? Dein Eingangsbeitrag liest sich, als hättest du das mit „im Terminal ausführen“ gekoppelt.

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

Vain schrieb:

Mal probiert, einen stinknormalen Launcher mit xterm -hold -e foo.py zu machen? Dein Eingangsbeitrag liest sich, als hättest du das mit „im Terminal ausführen“ gekoppelt.

+1

Folgendes klappt auch, darfst es halt nur nicht als "Anwendung im Terminal" setzen, sondern nur als "Anwendung":

xterm -e "echo foobar && read"

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

Danke für die Lösungen. Natürlich hatte ich es mit "Im Terminal ausführen" angelegt. Klingt ja irgendwie naheliegend. Funzt mit dem xterm.

Kleine Zusatzfrage:

Wie starte ich es mit dem grundsätzlich hübscherem gnome-terminal. Das simple

1
gnome-terminal -e "blabla.py && read"

blitz wieder nur kurz. Seufz!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Ja klar, denn ein Starter ist ja keine normale Shell.

Wenn Du dort eine Shell haben willst, musst Du im Starter eine aufrufen:

bash -c 'blabla.py ; echo "[Taste]" ; read -n1'

dann hast Du eine ... 😉

LG,

track

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Wenn du das hässliche [sic] GNOME-Terminal verwenden möchtest, dann sollte

gnome-terminal -e "bash -c 'foo.py; read'"

funktionieren. Falls er da störrisch ist, dann versuche, die äußeren doppelten Anführungszeichen wegzulassen, aber nicht die inneren.

– edit: Ja, klar, wie track schon sagt: Problem ist, dass das mit den verketteten Befehlen von einer Shell ausgeführt werden muss, was standardmäßig nicht passiert.

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

track schrieb:

bash -c 'blabla.py ; echo "[Taste]" ; read -n1'

Geht gar nicht!

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

Vain schrieb:

Wenn du das hässliche [sic] GNOME-Terminal verwenden möchtest, dann sollte

Wie sagte schon ein alter Romane: De gustibus non est disputandum - Über Geschmack lässt sich nicht streiten.

Ansonsten: Danke an alle, es geht. Für mich gelöst!

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

thaub schrieb:

Über Geschmack lässt sich nicht streiten.

Och, doch, ganz sicher. Nur vielleicht nicht ergebnisorientiert. 😀 😉

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

thaub schrieb:

track schrieb:

bash -c 'blabla.py ; echo "[Taste]" ; read -n1'

Geht gar nicht!

Meinst Du "gefällt mir nun gar nicht" oder "funktioniert nicht" ...?

Denn bei mir (mit einem Bash-Skript statt Python) funktioniert es hervorragend.

track

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

track schrieb:

... Meinst Du "gefällt mir nun gar nicht" oder "funktioniert nicht" ...? ... Denn bei mir (mit einem Bash-Skript statt Python) funktioniert es hervorragend.

track

Ich meine: "Funktioniert nicht!", in dem Sinne, dass ich im Starter (mit und ohne "Im Terminal") als "Befehl":

bash -c '/home/thl/test1.py ; read'

eingebe.

Ergänzung: Aber: Mit "Im Terminal" funktioniert es; Mein Fehler 😳

Danke für den Hinweis!

thaub

(Themenstarter)
Avatar von thaub

Anmeldungsdatum:
26. Oktober 2007

Beiträge: 150

Ich fasse zusammen:

Python Konsolen-Script über Gnome-Starter (Doppelklick) starten und anschauen

Methode 1: Rechts-Klick auf Desktop, Starter anlegen, Typ: "Anwendung im Terminal", Befehl:

bash -c "/home/thl/test1.py ; read"

"bash" muss aufgerufen werden, weil der Starter nicht automatisch eine Shell ist.

"read" ist erforderlich, damit die Konsole nicht sofort wieder schließt, sondern erst nach der Eingabe von <Return> bzw. click auf Close-Button des Terminal-Fensterns

Methode 2 (mit Terminal-Programm): Rechts-Click auf Desktop, Starter anlegen, Typ: "Anwendung"

a) Mit xterm, Befehl:

xterm -hold -e "/home/thl/test1.py "

"-hold" ist notwendig, damit xterm geöffnet blieb, und mit Click auf Close-button geschlossen werden kann (<Return> geht nicht!)

"-e" startet das python-Programm

b) mit gnome-terminal, Befehl:

gnome-terminal -e "bash -c '/home/thl/test1.py; read'"

Hier muss wieder explicit eine Shell gestartet werden, weil gnome-terminal das hier offensichtlich im Gegensatz zu xterm nicht automatisch macht!

Daneben gibt es noch eine Reihe kreativer Variationen, auf die nicht mehr eingegangen wird.

Nochmals Dank an Alle,

MfG, Thaub

Antworten |