2016-06-28 1 views
0

J'utilise la queue pour sortir la liste à partir d'un solveur en utilisant:Comment commencer queue konsole avec subprocess

outputListing = exportFileName.split(".pc")[0] + ".out" 
solver_run = subprocess.Popen([solver_path, "-visual", "-solvargs", "-nt 4 -fp 2", exportFilePath, outputListing]) 
if os.sep == "\\": 
    subprocess.Popen(["wintail",outputListing], shell = True) 
elif os.sep == "/": 
    if os.environ.get("DESKTOP_SESSION") == 'gnome' 
     subprocess.Popen(["gnome-terminal", "-e","tail -f " + outputListing]) 
    elif os.environ.get("DESKTOP_SESSION") == 'kde' 
     subprocess.Popen(["konsole", "-e","tail -f " + outputListing]) 

avec cet appel la liste de solveur est sortie dans GNOME, mais dans KDE que le seul terminal (konsole) est démarré, mais aucune queue n'est exécutée. Donc, je dois probablement remplacer "-e" et "tail -f" en conséquence. Des idées pour le bon appel?

Répondre

0

J'ai trouvé la solution par moi-même. On utiliser:

subprocess.Popen(["konsole", "-e","$SHELL", "-c","tail -f " + outputListing]) 

donc la clé était d'ajouter « $ SHELL » et « -c » à l'appel