为了账号安全,请及时绑定邮箱和手机立即绑定

pythonw.exe还是python.exe?

pythonw.exe还是python.exe?

人到中年有点甜 2019-10-16 13:09:07
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>请告诉我做错了什么。
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

如果不希望在运行程序时弹出终端窗口,请使用pythonw.exe;
否则,使用python.exe

关于语法错误:print 现在是3.x中的一个函数。
因此,请使用:

print("a")


查看完整回答
反对 回复 2019-10-17
?
当年话下

TA贡献1890条经验 获得超9个赞

总结和补充现有答案:

  • python.exe是控制台(终端)应用程序。用于启动cli类型脚本。.

    • 如果创建了一个新的控制台窗口,它将一直处于打开状态,直到脚本终止。
    • 从现有控制台窗口调用时,提示将被阻塞,直到脚本终止。
    • 除非从现有的控制台窗口运行,

      python.exe 打开一个新的控制台窗口。.

    • 标准流 sys.stdinsys.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.stdinsys.stdout

      sys.stderr

      不可得.


你可以的控制默认情况下哪个可执行文件运行您的脚本。-例如从资源管理器打开时选择正确的文件扩展名:

  • *.py

    默认情况下,文件与

    python.exe

  • *.pyw

    默认情况下,文件与

    pythonw.exe



查看完整回答
反对 回复 2019-10-17
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

如果要从其他进程(例如从命令行)调用python脚本,请使用pythonw.exe..否则,您的用户将不断地看到cmd窗口启动python进程。它仍然会同样运行您的脚本,但不会影响用户体验。

一个例子可能是发送电子邮件;python.exe将弹出一个CLI窗口,发送电子邮件,然后关闭窗口。它会显示为一个快速闪光灯,可以被认为有点烦人。pythonw.exe避免这一点,但仍然发送电子邮件。


查看完整回答
反对 回复 2019-10-17
  • 2 回答
  • 0 关注
  • 459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信