#1 Le 05/07/2010, à 13:58
- p6s
[Résolu] lancer un executable via python ET recuperer la main
Hello.
Comme dit dans le titre, je souhaiterai lancer un executable (windows, donc avec wine, pas de probleme en soi) à l'interieur d'un script python.
J'ai lu qu'on pouvait utiliser os.system, sous la forme
os.system('wine monappli.exe')
ça me lance bien l'appli mais je ne voudrais pas qu'il s'arrete là et qu'il continue le reste du script.
C'est tout ce que je demande, pas de parametres à faire passer ni recuperer.
j'ai bien vu qu'il y avait tout un tas de possiblités avec subprocess, mais ça fait peur aux non-programmeurs ce truc
Si quelqu'un connait la syntaxe à utiliser dans mon cas ...
En vous remerciant
Dernière modification par p6s (Le 05/07/2010, à 14:36)
Hors ligne
#2 Le 05/07/2010, à 14:06
- HP
Re : [Résolu] lancer un executable via python ET recuperer la main
j'ai bien vu qu'il y avait tout un tas de possiblités avec subprocess, mais ça fait peur aux non-programmeurs ce truc
Si quelqu'un connait la syntaxe à utiliser dans mon cas ...
Tu veux pas qu'on écrive ton script à ta place non plus ?
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#3 Le 05/07/2010, à 14:11
- p6s
Re : [Résolu] lancer un executable via python ET recuperer la main
HP "contribution" >/dev/null
Hors ligne
#4 Le 05/07/2010, à 14:13
- yannzbig
Re : [Résolu] lancer un executable via python ET recuperer la main
HP "contribution" >/dev/null
A défaut d'être programmeur, tu as un sens de l'humour certain
#5 Le 05/07/2010, à 14:14
- p6s
Re : [Résolu] lancer un executable via python ET recuperer la main
p6s a écrit :HP "contribution" >/dev/null
A défaut d'être programmeur, tu as un sens de l'humour certain
merci
Hors ligne
#6 Le 05/07/2010, à 14:17
- jde3
Re : [Résolu] lancer un executable via python ET recuperer la main
Perso, quand je fais un os.system, le programme principal reprend la main après...
Hors ligne
#7 Le 05/07/2010, à 14:20
- p6s
Re : [Résolu] lancer un executable via python ET recuperer la main
Perso, quand je fais un os.system, le programme principal reprend la main après...
C'est peut-etre parce que le programme que tu lances s'execute/se termlne fissa ?
là je viens de relancer pour voir, j'ai collé un print 'Totoro' la ligne après l'os.system() - le "debuggage" du pauvre -, et ça ne s'affiche même pas dans le terminal
edit : pour être précis, il ne s'affichera qu'au premier control-c, donc quand j'aurai interrompu l'appli lancée via os.system(wine)
Dernière modification par p6s (Le 05/07/2010, à 14:24)
Hors ligne
#8 Le 05/07/2010, à 14:27
- yannzbig
Re : [Résolu] lancer un executable via python ET recuperer la main
Si je comprends ton pb, tu veux lancer ton exe en tache de fond et récuperer la main alors que ton exe tourne toujours?
Tu peux essayer de faire
os.system( 'mon_apply_a_lancer_en_tache_de_fond > un_fichier &' )
Soluce trouvée ici, sans garantie...
EDIT: ou tout simplement
os.system('wine monappli.exe &')
Dernière modification par yannzbig (Le 05/07/2010, à 14:29)
#9 Le 05/07/2010, à 14:34
- p6s
Re : [Résolu] lancer un executable via python ET recuperer la main
ou tout simplement
os.system('wine monappli.exe &')
Ah oui tiens, j'avais pas pensé à réutiliser le & magique du shell à l'intérieur d'os.system , mais bingo, ça marche
merci.
Dernière modification par p6s (Le 05/07/2010, à 14:34)
Hors ligne
#10 Le 05/07/2010, à 14:38
- ADcomp
Re : [Résolu] lancer un executable via python ET recuperer la main
os.system est obsolète .. et je vois pas ce qui "fait" peur dans subprocess .. ??
Voilà un bout de code qui devrait faire ce que tu demandes :
from subprocess import Popen
cmd = "ce_que_tu_veux_executer"
p = Popen(cmd, shell=True).pid
Dernière modification par ADcomp (Le 05/07/2010, à 14:38)
David [aka] ADcomp
Hors ligne