【发布时间】:2014-05-22 13:55:54
【问题描述】:
我正在运行此代码,它在 OSX 中运行良好,但在 Windows 上会导致错误:
command = "C:\\progra~2\\itms\\iTMSTransporter -m verify -f /Volumes/Stuff/Temp/TMP_S_0_V_TV2.itmsp -u username -p password -o /Volumes/Stuff/Temp/TMP_S_0_V_TV2.itmsp/LOGFILE.txt -s provider -v eXtreme"
self.process1 = Popen(shlex.split(command), shell=False, stdin=PIPE)
我在 Windows 上收到的错误是:
WindowsError: [Error 2] The system cannot find the file specified
为什么在 Windows 上给我这个错误?
【问题讨论】:
-
您尝试通过指定可执行文件的路径来运行命令。
/usr/local/itms/share/iTMSTransporter.woa/iTMSTransporter是文件系统中的路径。在 Windows 中,文件系统路径以驱动器号开头。这不可能是 Windows 上的有效路径。因此出现了错误,我想说的很清楚。 -
对不起,你是对的!我的意思是将路径更改为 Windows 路径,我已经这样做了。我已经更新了问题。
-
你应该转义命令并且不要使用波浪号:command = "\"C:\\program files\\itms\\iTMSTransporter.exe\" ...
-
系统提示你路径还是错误的。我不确定这里的 Windows 错误消息,但我很确定如果问题是文件无法访问或无法执行,那么错误消息将是不同的。
progra~2字符串可能无效。 -
progra~2 在 shell=True 的情况下可以正常工作,但仍然无法正常工作。