长话短说: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>
请告诉我我在做错什么。
如果你不希望在运行程序时弹出终端窗口,请使用pythonw.exe; 否则,使用python.exe
关于语法错误:print 现在是3.x中的函数,请 改用:
print
print("a")
总结和补充现有的答案:
python.exe是用于启动CLI类型脚本的控制台(终端)应用程序。
除非从现有控制台窗口运行,否则python.exe 将打开一个新的控制台窗口。
pythonw.exe是一个用于启动GUI /无UI脚本的GUI应用。
没有打开控制台窗口。
临时的,你可以使用输出重定向:谢谢,@ 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,而你不是在标准输出输出,使用从注释兴趣@拉手的命令: pythonw.exe yourScript.pyw 1>NUL 2>&1 买者:这个输出重定向技术确实不调用工作时*.pyw脚本直接(而不是将脚本文件路径传递到pythonw.exe)。请参阅下面的eryksun的第二条评论及其后续意见。 通过选择正确的文件扩展名,你可以控制默认情况下哪个可执行文件运行脚本(例如从资源管理器打开时):
pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt
cmd /c pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt
pythonw.exe yourScript.pyw 1>NUL 2>&1
*.py默认情况下,文件与以下文件关联(调用) python.exe
*.py
*.pyw