itd*_*ork 148 python python-3.x
长话短说:pythonw.exe什么都不做,python.exe什么都不接受(我应该使用哪一个?)
test.py:
print "a"
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
请告诉我,我做错了什么.
mkl*_*nt0 261
总结和补充现有答案:
python.exe是用于启动CLI类型脚本的控制台(终端)应用程序.
python.exe 将打开一个新的控制台窗口.sys.stdin,sys.stdout并且sys.stderr被连接到控制台窗口.从PowerShell控制台窗口启动时执行是同步的cmd.exe:请参阅下面的eryksun的第一条评论.
pythonw.exe是一个GUI应用程序,用于启动GUI/no-UI-at-all脚本.
sys.stdin,sys.stdout并且sys.stderr是不可用.
print()会导致这种情况发生(在3.x中,print()根本没有效果).pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txtcmd /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的第二条评论及其后续跟进.您可以通过选择正确的文件扩展名来控制默认情况下运行脚本的哪些可执行文件 - 例如从资源管理器中打开时:
*.py 默认情况下,文件与关联(调用) python.exe*.pyw 默认情况下,文件与关联(调用) pythonw.exeber*_*nie 165
如果您不希望在运行程序时弹出终端窗口pythonw.exe;
否则,请使用python.exe
关于语法错误:print 现在是3.x中的函数
所以请改用:
print("a")
Run Code Online (Sandbox Code Playgroud)
jon*_*jon 18
见这里:http: //docs.python.org/using/windows.html
pythonw.exe"这会在启动时禁止终端窗口."
Dro*_*ans 16
如果您要从其他进程(例如,从命令行)调用python脚本,请使用pythonw.exe.否则,您的用户将不断看到cmd启动python进程的窗口.它仍然会以相同的方式运行您的脚本,但它不会干扰用户体验.
一个例子可能是发送电子邮件; python.exe将弹出CLI窗口,发送电子邮件,然后关闭窗口.它看起来像一个快速闪光灯,可以被认为有点烦人.pythonw.exe避免这种情况,但仍然发送电子邮件.
| 归档时间: |
|
| 查看次数: |
169126 次 |
| 最近记录: |