Python TUI 后端有哪些选项?
What Options Are There for a Python TUI Backend?
我需要为我正在处理的项目构建一个 python TUI。我不需要关于那里的实际 TUI 库(如 ncurses/npyscreen/Urwid/etc)的建议,因为我的团队已经确定它们对于我们的需求来说太重量级了。 TUI 采用相对简单的文本输入,不需要所有漂亮的格式和小部件。它也只会在任何时候接受来自单个用户的输入。
由于我们正在滚动我们自己的显示,这就留下了真正的问题,即是否有可用的库选项可以帮助实现我可以重用的 event-handling/IO 循环?我开始在 Internet 上搜索 GUI/TUI 后端,并很快发现自己进入了 Twisted/Tornado/Gevent 世界,我也不确定这是 运行 的正确途径。这些库,或者 Urwid 是否能够让我轻松地输入我自己的显示代码(渲染屏幕并获取简单的 raw_input()
样式数据)?
这只会在 Python 2.7、Linux 环境中 运行,但如果它在 Mac 上工作,那将是一个很大的优势。
Twisted 有一个名为 "Insults" 的框架,这是它的 Curses 版本。
这个框架的边缘仍然很粗糙,但它可能会保持这种状态,除非有人冒险并开始使用它/提交错误等。您可以看到 Imaginary 如何设置异步文本 UI(输入行和单独的输出区域,因此输出不会打断您的输入)here.
我需要为我正在处理的项目构建一个 python TUI。我不需要关于那里的实际 TUI 库(如 ncurses/npyscreen/Urwid/etc)的建议,因为我的团队已经确定它们对于我们的需求来说太重量级了。 TUI 采用相对简单的文本输入,不需要所有漂亮的格式和小部件。它也只会在任何时候接受来自单个用户的输入。
由于我们正在滚动我们自己的显示,这就留下了真正的问题,即是否有可用的库选项可以帮助实现我可以重用的 event-handling/IO 循环?我开始在 Internet 上搜索 GUI/TUI 后端,并很快发现自己进入了 Twisted/Tornado/Gevent 世界,我也不确定这是 运行 的正确途径。这些库,或者 Urwid 是否能够让我轻松地输入我自己的显示代码(渲染屏幕并获取简单的 raw_input()
样式数据)?
这只会在 Python 2.7、Linux 环境中 运行,但如果它在 Mac 上工作,那将是一个很大的优势。
Twisted 有一个名为 "Insults" 的框架,这是它的 Curses 版本。
这个框架的边缘仍然很粗糙,但它可能会保持这种状态,除非有人冒险并开始使用它/提交错误等。您可以看到 Imaginary 如何设置异步文本 UI(输入行和单独的输出区域,因此输出不会打断您的输入)here.