Je rencontre un problème qui devrait être lié aux appels imbriqués que je suis en train d'effectuer.
RunProgram () -> cmd -> Python
Le fichier chauve-souris suivant fonctionne parfaitement.
set JMP_PYTHON_PTH=%UserProfile%\miniconda_JMP\
CALL %JMP_PYTHON_PTH%\Scripts\activate.bat %JMP_PYTHON_PTH%
start /B /wait "" python test.py
Et pourtant, lors de l'utilisation de RunProgram (), le code échoue à moins que j'ajoute le chemin absolu au fichier Python (test.py -> 'C: /a/b/c/test.py')
ClearLog();
file_path = ConvertFilePath( "./tests/run_python_installation_test.bat", windows);
rp = RunProgram( Executable( "cmd.exe" ),
Options( {"/C", file_path} ),
ReadFunction("text") // returns all text
);L'erreur que j'obtiens, encore une fois uniquement si le chemin absolu n'est pas donné, est la suivante.
(base) C:\WINDOWS\system32>start /B /wait \!"\!" python test.py
python: can't open file 'test.py': [Errno 2] No such file or directory
Quand je lance ça
file_path = convertfilepath("$temp/x.bat","windows");
savetextfile(file_path, "dir\!n");
rp = RunProgram( Executable( "cmd.exe" ),
Options( {"/C", file_path} ),
ReadFunction("text") // returns all text
);il semble que le répertoire de travail pour l'exécution du fichier bat soit mon répertoire de bureau. Je pense que python utilisera également le répertoire de travail pour trouver le nom de fichier sur la ligne de commande. L'utilisation du nom de chemin complet semble un bon choix.
https://superuser.com/questions/396394/how-do-i-set-an-executables-working-directory-via-the-command-line-prior-to-ex vous suggère de spécifier le répertoire de travail dans votre commande de démarrage:
START /D c:\temp notepad.exe