我正在调整我在 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 中的检查点没有显示。
正如评论和链接的问题一样,在 Windows 中您不能简单地执行 python 脚本,您还需要提供 python 可执行文件的路径。由于您已经在使用 python,因此您可以简单地使用 sys.executable
找到可执行文件的位置
import sys
p = subprocess.Popen([sys.executable, 'myscript.py', arg1, arg2, arg3])
输出被传输到 stderr
和 stdout
- 要查看它,您还需要 communicate
(stdoutdata, stderrdata) = p.communicate()
print stdoutdata,
print stderrdata