pythonw.exe te-6ren">
gpt4 book ai didi

pythonw.exe 还是 python.exe?

转载 作者:IT老高 更新时间:2023-10-28 12:29:06 25 4
gpt4 key购买 nike

长话短说: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>

请告诉我我做错了什么。

最佳答案

总结和补充现有答案:

  • python.exe 是一个控制台(终端)应用程序用于启动 CLI 类型的脚本(控制台应用程序)。 p>

    • 除非从现有的控制台窗口运行,python.exe 打开一个新的控制台窗口

    • 标准流 sys.stdinsys.stdoutsys.stderr连接到控制台窗口

    • cmd.exe 或 PowerShell 控制台窗口启动时,执行是同步:参见 eryksun的第 1 条评论如下。

      • 如果创建了新的控制台窗口,它将保持打开状态,直到脚本终止。
      • 从现有控制台窗口调用时,提示将被阻止,直到脚本终止。
  • pythonw.exe 是一个 GUI 应用程序用于启动 GUI/no-UI-at-all 脚本

    • 没有控制台窗口打开。
    • 执行是异步:
      • 当从控制台窗口调用时,脚本只是启动,并且无论脚本是否仍在运行,都会立即返回提示。
    • 标准流 sys.stdinsys.stdoutsys.stderr 不可用
      • 注意:除非您采取额外措施,否则会有可能出现意想不到的副作用:
        • 未处理的异常会导致脚本中止静默
        • 在 Python 2.x 中,简单地尝试使用 print() 可能会导致这种情况发生(在 3.x 中,print() 根本没有效果)。
          • 在您的脚本中防止这种情况,并了解更多信息,请参阅 this answer我的。
          • Ad-hoc,您可以使用输出重定向:谢谢@handle。
            pythonw.exe yourScript.pyw 1​​>stdout.txt 2>stderr.txt
            (来自 PowerShell:
            cmd/c pythonw.exe yourScript.pyw 1​​>stdout.txt 2>stderr.txt) 在文件中捕获标准输出和标准错误输出。
            如果您确信使用 print() 是您的脚本使用 pythonw.exe 静默失败的唯一原因,并且您对 stdout 输出不感兴趣,请使用 @来自评论的句柄命令:
            pythonw.exe yourScript.pyw 1​​>NUL 2>&1
            警告:这种输出重定向技术在直接调用*.pyw脚本时不起作用(而不是通过传递pythonw.exe 的脚本文件路径)。 eryksun的第二条评论及其后续行动。

您可以控制哪些可执行文件默认运行您的脚本 - 例如从资源管理器中打开时 - 通过选择正确的文件扩展名:

  • *.py 文件默认与 python.exe
  • 关联(调用)
  • *.pyw 文件默认与 pythonw.exe
  • 关联(调用)

关于pythonw.exe 还是 python.exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com