我正在尝试使用python 子进程来调用exe。应用程序通常从与 exe 相同的目录中获取参数文件。但是由于python文件和exe不在同一个目录下,所以在subprocess.run调用时exe找不到参数文件。因此,我在调用 subprocess.run 时指定了cwd ,如下所示:
subprocess.run([cwd_exe, "--cal-cn-bv", cwd_cif, "Cs1"], cwd=r'd:\Study\softBV_mix\GitHub\projects\Coord\bin', capture_output=True)
但是子进程仍然找不到 dat 文件
d:\Study\softBV_mix\GitHub\projects\Coord\bin
错误消息显示为
CompletedProcess(args=['d:\Study\softBV_mix\GitHub\projects\Coord\bin/softBV0405.exe', '--cal-cn-bv', 'd:\Study\softBV_mix\GitHub\projects\Coord\ test/CsCl.cif', 'Cs1'], returncode=0, stdout=b'警告:无法找到 d:\Study\softBV_mix\GitHub\projects\Coord\database_unitary.dat
database_unitary.dat 应该在.../coord/bin/ 中。如果我从 powershell 或命令提示符调用它,该应用程序运行良好。