python - Windows 上的 subprocess.call 没有启动第二个文件

标签 python windows subprocess

<分区>

我正在调整我在 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])

输出被传输到 stderrstdout - 要查看它,您还需要 communicate

(stdoutdata, stderrdata) = p.communicate()

print stdoutdata, 
print stderrdata

关于python - Windows 上的 subprocess.call 没有启动第二个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15522648/

相关文章:

python - Ruby 或 Python 是否因为速度而不适合 iPhone 或 Mac 应用程序开发,以及任何可以帮助提高速度的编译器?

python - 指定包应自动解压缩

Python:在 Windows 或 Linux 上获取挂载点

python - 在 supervisord 下运行时子进程失败

python - 使用 python 获取 bash 输出

java - Selenium : How to stop geckodriver process impacting PC memory, 没有调用 driver.quit()?

具有可变数量参数的 Python 扩展模块

c++ - Windows 服务停留在启动状态

python - 加载库: pyinstaller :format messageW failed

python - 从 pty 读取,无需无休止的挂起