os.fork ... externes Programm wird immer doppelt gestartet

Hallo,
ich wurschtele gerade weiter an einem kleinen Programm zur Erstellung von Verkaufstexten für eBay (nutzt PyQt... ist hier aber kein PyQt-Problem). Nun wollte ich eine Hilfe-Funktion einbauen, bei der der Web-Browser Konqueror mit meiner HTML-Hilfedatei geöffnet wird. Der Aufruf der Sub führt aber immer zum zweifachen Start des Konqueror. Woran mag das liegen?
Gruß Daniel
----
Code:
. . import os from posix import execv . . .
def helpContents(self): pid = os.fork() if pid == 0: status = execv("/usr/bin/konqueror",("--profile webbrowsing","eBayEd.html")) os.wait()

[ Daniel Hagemeister PepeCyB@hagemeisterbln.de ]
Hallo,
ich wurschtele gerade weiter an einem kleinen Programm zur Erstellung von Verkaufstexten für eBay (nutzt PyQt... ist hier aber kein PyQt-Problem). Nun wollte ich eine Hilfe-Funktion einbauen, bei der der Web-Browser Konqueror mit meiner HTML-Hilfedatei geöffnet wird. Der Aufruf der Sub führt aber immer zum zweifachen Start des Konqueror. Woran mag das liegen?
Blöde Frage: Warum verwendest du nicht gleich das subprocess Modul? Das macht im Prinzip nichts anderes, funktioniert aber ;)
import os
from posix import execv
Wozu dieser import? os.execv gibts auch ...
def helpContents(self): pid = os.fork() if pid == 0: status = execv("/usr/bin/konqueror",("--profile webbrowsing","eBayEd.html")) os.wait()
import subprocess ... cmd = ['/usr/bin/konqueror', '--profile', 'webbrowsing', 'eBayEd.html'] process = subprocess.Popen(cmd) process.wait()

Erstmal vielen Dank für den Tip mit "subprocess" und das Modul "webbrowser"! Werde mich mit beidem noch näher beschäftigen...
Mein Problem ist vorerst auch gelöst... war allerdings doch ein Qt/PyQt-Problem:
Ich hatte versehentlich die Sub mit dem Signal "activated()" statt mit "clicked()" verbunden. Mit "clicked()" klappt es... der Browser wird nur einmal gestartet.
Gruß Daniel
participants (2)
-
Daniel Hagemeister
-
Sebastian Wiesner