【发布时间】:2013-03-09 11:51:53
【问题描述】:
我正在调整我在 Linux 上为 Win 7 编写的代码。
在 Linux 上是:
subprocess.call(['./myscript.py', arg1, arg2, arg3])
它是从 Shell 启动的,一切正常。 对于 Windows(我使用 Idle 中的 Python),我做到了:
subprocess.call(['myscript.py', arg1, arg2, arg3], shell=True)
它似乎没有启动任何东西,但没有给我任何错误。我尝试使用 pdb.set_trace() 调试该函数,但 myscript.py 中的检查点没有显示出来。
【问题讨论】:
-
为什么要在那里使用
shell=True? -
否则我会收到错误 193:%1 不是有效的 Win32 应用程序
-
我认为在 linux 中它是一个可执行文件,因此是
./myscript.py。在 Windows 中,它很可能不是。以某种方式使用python myscript.py。 -
如果我将其设置为 subprocess.Popen(['python myscript.py', 'arg1'], shell=True) 它也不会启动任何东西而不给出任何错误。更重要的是,如果我给出错误的文件名,它也不会识别任何错误。
-
当然它不会启动任何东西,你必须输入
python的完整路径。检查@MartijnPieters 发布的问题。它会解决你的问题。
标签: python windows subprocess