使 PyInstaller exe 同时执行命令行和窗口化

Ala*_*n L 7 python windows command-line pyinstaller

我正在编写一个 Python 程序,它既可以在命令行上使用,也可以作为交互式窗口使用。(这是一个坏主意吗?)如果提供了命令行参数,它会执行一个任务,然后打印“成功”或“失败”。否则,它会启动一个交互式窗口。

PyInstaller 似乎不是为了支持这一点而构建的。我有两个非最佳选择:

  1. 使用 --console 模式:命令行很好用,但是如果我双击 exe 来显示交互窗口,它也会显示一个我不想要的控制台窗口
  2. 使用 --noconsole 模式:没有控制台弹出窗口,但在使用命令行时没有输出显示。

看来我要么需要一种不以 --console 模式弹出控制台的方法,要么在 --noconsole 模式下显示打印输出。如果这些选项都不起作用,我可能需要制作该程序的单独命令行版本。

有什么建议吗?

Pet*_*ter 5

这不是一个完美的解决方案,但这个解决方法为我完成了这项工作:

在 --noconsole --one 文件模式下构建 gui 应用程序,如下所示:

pyinstaller --noconsole --onefile hello.py
Run Code Online (Sandbox Code Playgroud)

当您从 Windows 双击应用程序时,它将正常启动(没有控制台)。

现在要查看输出,请从命令行导航到可执行文件并键入:

hello.exe | more
Run Code Online (Sandbox Code Playgroud)

“| more”应该将打印语句发送到控制台。