是否可以将 python 应用程序与其单独的终端打包?

Is it possible to package a python application with its separate terminal?

我想要我的程序的可执行文件(Windows、MacOS、Linux),它有自己的终端 window,用户可以在其中输入内容。除了这个可执行文件,我不想让用户安装模块或任何东西。您可以说我程序的 UI 将是一个终端 window。有可能吗?

我基本上希望我的应用程序的 GUI 成为终端 window。

要为您的程序创建命令行界面,您可能需要使用类似 argparse 的东西,它位于标准 Python 库中。您可以尝试使用许多其他功能丰富的命令行界面模块(例如,单击)。您可以为您的用户设计命令行交互,包括输入和输出、菜单等。

构建应用程序后,PyInstaller 模块是使其可移植的一个不错选择。如果您在调用它时设置 --onefile 选项,它将生成一个可以轻松与用户共享的 .exe 文件。如果您在调用 PyInstaller 时还设置了 --console 选项,那么您的 Python .exe 应用程序将与 stdin/stdout 交互。在 Windows 上,这将是一个 cmd window.

如果用户通过 GUI 调用您的 .exe(例如,双击其图标),将打开 Windows CMD window。但是,如果您希望 window 到 保持 打开,您将需要使用某种 "infinite"/"captive" 设计来创建您的应用程序,这种设计永远不会完成执行,直到用户明确退出。

如果用户改为从已经打开的 Windows CMD 终端运行 .exe,那么 window 将始终保持打开状态。

我怀疑您正在寻找 curses,或者 UniCurses 如果您坚持使用 Microsoft Windows。

许多终端模拟器将允许您使用命令行选项启动它们,该选项在该模拟器中指定 运行 的命令而不是默认的 shell.