2017-09-11 1 views
0

J'essaie de lancer un exécutable à partir du sous-processus python et j'ai un problème avec le chemin. Je suis en train de courir newman.cmd qui est situé dansImpossible de lancer exec en sous-processus avec le chemin

C:\Users\<myself>\AppData\Roaming\npm 

J'essaie

subprocess.run("C:\Users\<myself>AppData\Roaming\npm\newman.cmd run","shell=True") 

qui échoue, ce qui indique:

Syntax Error: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape: C:\knxnet\test_differentiel.py, line 71, pos 23 
subprocess.run("C:\Users\<myself>\AppData\Roaming\npm\newman.cmd run","shell=True") 

Si je copie newman.cmd et la dossiers appropriés dans mon chemin local, je finis par lancer la commande comme prévu, à savoir. cela fonctionne:

subprocess.run("newman.cmd -h") 

J'ai vérifié le chemin et il me donne ce qui suit:

ENV = <irrelevant info> ;C:\Users\<myself>\AppData\Roaming\npm 

donc je bien qu'il trouverais? comment puis-je faire pour éviter de copier les exécutables dans mon répertoire courant?

Merci pour toute aide ...

+1

Est-il possible que votre nom d'utilisateur contient des caractères non-ASCII? –

+1

J'ai trouvé le problème ... c'est l'U des utilisateurs –

Répondre

0

Eh bien, je trouve la réponse grâce à SO ... "Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3

Il est interprété comme unicode suivi d'un caractère non désiré ... la position indiquée dans l'erreur était la position de la citation, donc je n'ai pas compris l'indice. donc j'ai essayé avec r:

subprocess.run(r"C:\Users\a.joly\AppData\Roaming\npm\newman.cmd -h") 

et il fonctionne. Cela fonctionne aussi si je double le "\".

merci pour votre temps ...