Bonjour,
J’ai un script* python qui génère puis exécute un script shell. Ce script shell doit absolument être sourcé. Pour ca j’utilse la commande*:
ou ShellFilePath est le path de mon shell (en l’occurrence /tmp/chWS.sh). Il se trouve qu’à la fin de ce shell il y a un ‘cd’ vers un Path. Hors, quand j’exécute le script python, je n’ai pas changé de directory à la fin. Par contre, si je lance directement après le script*:
Code : Sélectionner tout - Visualiser dans une fenêtre à part subprocess.call(["command",".",str(ShellFilePath)],shell=True)
Tout se passe bien. J’ai instrumenté le script python en appelant ‘os.spawnlp(os.P_WAIT, 'pwd','pwd')’ avant et après subprocess.call, et la directory correspond toujours à celle d’où est lancé le script python. Pour info j’ai également essayé les syntaxes suivante*:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $>command . /tmp/chWS.sh
J’ai l’impression que tout se passe comme si mon shell était exécuté dans un terminal autre que celui d’où est lancé mon script python.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cmdToExec='command . '+str(ShellFilePath) os.system(cmdToExec) //KO os.spawnlp(os.P_WAIT,cmdToExec,cmdToExec) //KO subprocess.Popen(str(cmdToExec),0,None,None,None,subprocess.STDOUT,None,False,True,None,None,False,None,0) //KO
Quelqu'un peut-il me dépanner?
D'avance merci.
Partager