我有以下Python代码
cmd = [
"cmd.exe", "/c",
"C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/vcvarsx86_amd64.bat",
"^&^&", "set", "PATH", ">", temp_file_path
]
print(cmd)
result = subprocess.run(cmd, capture_output=True)
if result.returncode != 0:
print(f"Error running vcvarsx86_amd64: {result.stderr.decode('utf-8')}")
sys.exit(1)
如果我从控制台运行这个 python 脚本,一切都会正常工作。
但是如果我使用以下命令从 cmake 内部运行它:
execute_process(
COMMAND ${PYTHON_CMD} script.py
--input_file ${INPUT_FILE}.dll
--output_file ${OUTPUT_FILE}.dll
RESULT_VARIABLE result
)
我收到以下错误:
['cmd.exe', '/c', 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/vcvarsx86_amd64.bat', '^&^&', 'set', 'PATH', '>', 'C:\\Users\\MYKOLA~1.GER\\AppData\\Local\\Temp\\tmpio00uuoh']
Error running vcvarsx86_amd64: The input line is too long.
The syntax of the command is incorrect.
我知道问题出在哪里了。已印刷:
print(cmd) # The input line is too long.
result = subprocess.run(cmd, capture_output=True)