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

PyInstaller似乎没有构建来支持此功能。我有两个非最佳选择:

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

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

    有什么建议吗?

    最佳答案

    这不是一个完美的解决方案,但是此变通办法为我完成了工作:
    在--noconsole-一个文件模式下构建gui应用程序,如下所示:

    pyinstaller --noconsole --onefile hello.py
    
    当您从Windows双击该应用程序时,它将正常启动(没有控制台)。
    现在要查看输出,请从命令行导航到可执行文件并键入:
    hello.exe | more
    
    “| more”应该将打印语句发送到控制台。

    关于python - 使PyInstaller exe既可以执行命令行操作也可以执行窗口操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38981547/

    10-15 16:38