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> 
请告诉我我做错了什么。
 如果您不想在运行程序时popupterminal窗口,请使用pythonw.exe ; 
 否则,使用python.exe 
 关于语法错误: print 现在是3.x中的一个函数 
 那么改用: 
 print("a") 
总结和补充现有的答案:
- 
python.exe是用于启动CLItypes脚本的控制台(terminal)应用程序。-  除非从现有的控制台窗口运行, python.exe打开一个新的控制台窗口 。
-   标准stream sys.stdin,sys.stdout和sys.stderr连接到控制台窗口 。
- 
从 cmd.exe或PowerShell控制台窗口启动时执行同步 : 请参阅下面的eryksun的第一条注释。- 如果创build了新的控制台窗口,它将保持打开状态,直到脚本终止。
- 从现有控制台窗口调用时,提示将被阻止,直到脚本终止。
 
 
-  除非从现有的控制台窗口运行, 
- 
pythonw.exe是一个GUI应用程序启动GUI /无UI的所有脚本 。- 没有控制台窗口打开。
-  执行是asynchronous的 :
- 从控制台窗口调用时,脚本仅启动,并立即返回,不pipe脚本是否仍在运行。
 
-   标准stream sys.stdin,sys.stdout和sys.stderr不可用 。-   警告 : 除非您采取额外步骤 , 否则 可能会产生意想不到的副作用 :
- 未处理的exception会导致脚本无声地中止 。
-   在Python 2.x中,简单地使用print()会导致这种情况发生 (在3.x中,print()根本没有效果)。
- 为了防止在你的脚本中 ,并了解更多,请参阅我的这个答案 。
-   特别的 ,你可以使用输出redirect : 谢谢,@ handle。 
 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脚本时(与通过将脚本文件path传递给pythonw.exe),此输出redirect技术不起作用。 请参阅下面的eryksun的第二条评论及其后续内容。
 
 
-   警告 : 除非您采取额外步骤 , 否则 可能会产生意想不到的副作用 :
 
您可以通过select正确的文件扩展名来控制哪些可执行文件默认运行脚本 – 例如从资源pipe理器打开时 –
-   *.py文件默认与python.exe关联(调用)
-   *.pyw文件默认与pythonw.exe关联(调用)
看到这里: http : //docs.python.org/using/windows.html
pythonw.exe“这会禁止启动时的terminal窗口。”
 如果您打算从某个其他进程(比如从命令行)调用python脚本,请使用pythonw.exe 。 否则,你的用户将不断看到一个cmd窗口启动python进程。 它仍然可以运行你的脚本,但不会侵入用户体验。 
 一个例子可能是发送电子邮件;  python.exe会popup一个CLI窗口,发送邮件,然后closures窗口。 它会显示为一个快速闪光,可以被认为有点讨厌。  pythonw.exe避免了这一点,但仍然发送电子邮件。 
我正努力让这个工作一段时间。 一旦将扩展名更改为.pyw,请确保打开文件的属性并将“打开方式”path指向pythonw.exe。