Terminal/Konsole im nachhinein öffnen

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
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Hallo, ich habe ein kleines ärgerliches Problem mit meinem Programm. Installiert ist es gewöhnlich unter Linux, wo es aber ab und zu nicht das was was es machen soll. Das Problem dabei ist, dass ich nicht sehen kann, was es macht, da es nicht über die Konsole gestartet wurde.
An der Stelle würde es ja logisch sein, wenn man einfach das Programm mit dem Terminal öffnet oder im application file angibt, dass nebenbei die Konsole laufen soll, nur tritt dieses Problem nur auf, wenn ich es ohne Terminal starte. Gibt es irgendeine Möglichkeit während dem lauf des Programmes, mir die Ausgaben anzeigen zu lassen?

Zu dem Problem kann ich leider nicht viel sagen, da ich wirklich nicht weiß was das Programm an der stelle macht und der Code zum posten einfach viel zu lang ist. Es handelt sich aber um eine qt(pyqt) Oberfläche bei der nach dem drücken auf den Button der Button gedrückt bleibt. Dass das Programm hängen geblieben ist, ist unwahrscheinlich, da irgendwas im Hintergrund passiert und nach mehrmaligen drücken auf den schon dunkel hinterlegten Button das Programm die eine Aufgabe anscheinen mehrmals durchlaufen ist.

Vielleicht weiß jemand Rat?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Probier mal folgendes:

Code: Alles auswählen

import shlex
from subprocess import Popen, PIPE

args = shlex.split('dein programm aufruf')
output, errors = Popen(args, stdout=PIPE, stderr=PIPE).communicate()
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Vielen Dank schonmal. Es hat soweit funktioniert, dass das Problem immerhin schonmal auftritt, nur wird dann in dem Fenster mit deinem Code keine Ausgabe angezeigt. Vielleicht trifft er ja garnicht auf ein Error ... Gibt es die Möglichkeit alle Ausgaben über das neue Programm anzeigen zu lassen? Oder kann ich Ausgaben in meinem Programm vielleicht als Error definieren?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich dachte, du wärst schon etwas erfahrener in Sachen Python, so dass ich nicht weiter erwähnt hatte, dass die Inhalte von `errors` und `output` natürlich auch noch ausgegeben werden müssen. Entweder per `print`-Statement (bzw `print()`-Funktion, falls Python 3 genutzt wird) oder z.B. mittels Umleitung in eine Datei (Logfile).
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Ups, sorry, das war mir in der Eile nicht aufgefallen. Hat aber jetzt funktioniert, das heißt, dass ich jetzt dem Problem nachgehen kann! Vielen Dank!
Antworten