pythonw.exe还是python.exe?

pythonw.exe还是python.exe?

长话短说:pythonw.exe什么都不做,python.exe什么也不接受(我应该用哪一种?)

test.py:

print "a"

CMD窗口:

C:\path>pythonw.exe test.py<BLANK LINE>C:\path>C:\path>python.exe test.py  File "C:\path\test.py", line 7
    print "a"
            ^SyntaxError: invalid syntax

C:\path>

请告诉我做错了什么。


人到中年有点甜
浏览 477回答 2
2回答

白衣非少年

如果不希望在运行程序时弹出终端窗口,请使用pythonw.exe;否则,使用python.exe关于语法错误:print 现在是3.x中的一个函数。因此,请使用:print("a")

当年话下

总结和补充现有答案:python.exe是控制台(终端)应用程序。用于启动cli类型脚本。.如果创建了一个新的控制台窗口,它将一直处于打开状态,直到脚本终止。从现有控制台窗口调用时,提示将被阻塞,直到脚本终止。除非从现有的控制台窗口运行,python.exe&nbsp;打开一个新的控制台窗口。.标准流&nbsp;sys.stdin,&nbsp;sys.stdout和sys.stderr是连接到控制台窗口.执行是同步从一个cmd.exe或PowerShell控制台窗口:看见丹阳下面是第一条评论。pythonw.exe是GUI应用程序用于启动GUI/无用户界面的所有脚本。.谨慎:&nbsp;除非你采取额外的步骤,这个潜在的意外副作用:未处理异常使脚本流产静默.在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).&nbsp;看见丹阳第二条评论和下面的后续报道。当从控制台窗口调用时,脚本仅仅是发射无论脚本是否仍在运行,提示都会立即返回。没有控制台窗口被打开了。执行是异步:标准流&nbsp;sys.stdin,&nbsp;sys.stdout和sys.stderr是不可得.你可以的控制默认情况下哪个可执行文件运行您的脚本。-例如从资源管理器打开时选择正确的文件扩展名:*.py默认情况下,文件与python.exe*.pyw默认情况下,文件与pythonw.exe

胡说叔叔

如果要从其他进程(例如从命令行)调用python脚本,请使用pythonw.exe..否则,您的用户将不断地看到cmd窗口启动python进程。它仍然会同样运行您的脚本,但不会影响用户体验。一个例子可能是发送电子邮件;python.exe将弹出一个CLI窗口,发送电子邮件,然后关闭窗口。它会显示为一个快速闪光灯,可以被认为有点烦人。pythonw.exe避免这一点,但仍然发送电子邮件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python