3 回答
TA贡献1826条经验 获得超6个赞
TA贡献1909条经验 获得超7个赞
python.exe
是控制台(终端)应用程序。 用于启动cli类型脚本。.如果创建了一个新的控制台窗口,它将一直处于打开状态,直到脚本终止。 从现有控制台窗口调用时,提示将被阻塞,直到脚本终止。 除非从现有的控制台窗口运行, python.exe
打开一个新的控制台窗口。.标准流
sys.stdin
,sys.stdout
和 sys.stderr
是 连接到控制台窗口.
执行是 同步从一个 cmd.exe
或PowerShell控制台窗口: 看见 丹阳 下面是第一条评论。 pythonw.exe
是GUI应用程序 用于启动GUI/无用户界面的所有脚本。.谨慎: 除非你采取额外的步骤
,这个 潜在的意外副作用:
未处理异常
使脚本 流产 静默 .在Python2.x中,只需尝试使用 print()
会导致这种情况发生 (3.x, print()
根本没有效果)。 到 从脚本中防止这一点
,要了解更多,请参见 我的。 临时
,你可以用 输出重定向:
谢谢,@句柄。 pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt
(来自PowerShell: cmd /c pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt
)捕获stdout和stderr输出 档案.
如果你确信 print()
是您的脚本无声地失败的唯一原因。 pythonw.exe
,并且您对stdout输出不感兴趣,请从注释中使用@Handle的命令: pythonw.exe yourScript.pyw 1>NUL 2>&1
警告这种输出重定向技术 不
调用时工作 *.pyw
剧本 直接
(与将脚本文件路径传递给 pythonw.exe
).看见 丹阳 第二条评论和下面的后续报道。 当从控制台窗口调用时,脚本仅仅是 发射
无论脚本是否仍在运行,提示都会立即返回。 没有控制台窗口
被打开了。 执行是 异步:
标准流
sys.stdin
,sys.stdout
和 sys.stderr
是 不可得.
*.py
默认情况下,文件与 python.exe
*.pyw
默认情况下,文件与 pythonw.exe
TA贡献1872条经验 获得超3个赞
pythonw.exe
cmd
python.exe
pythonw.exe
添加回答
举报