【问题标题】:curses-like library for cross-platform console app in pythonpython中跨平台控制台应用程序的类curses库
【发布时间】:2010-11-17 17:03:03
【问题描述】:

我正在研究用 python 开发一个控制台应用程序,它应该能够在 Windows 和 Linux 下运行。为此,我真的很想使用像 curses 这样的高级控制台库。但是,据我所知,curses 在 Windows 上不可用。

我还有什么其他选择?不幸的是,在 Windows 下使用 cygwin 不是一种选择...

感谢您的帮助!

【问题讨论】:

  • 所以,如果我看看你的答案,我的问题似乎没有一个好的解决方案......我可能会尝试强制用户在 Windows 上使用 cygwin。祝我好运;)
  • 有一个可用于 Python 的 PDCurses 实现的构建:lfd.uci.edu/~gohlke/pythonlibs/#curses

标签: python windows linux console ncurses


【解决方案1】:

有一个wcurses。我从未尝试过,但它可能会满足您的需求。听起来它没有完全的诅咒兼容性,但可能足够接近。此外,它可能不是使用 DOS 终端,而是打开一个 GUI 窗口并在其中绘制等宽文本。

其他 windows 文本模式选项有:

我相信两者都只是窗户。

【讨论】:

【解决方案2】:

我最近遇到了这个问题,因为我正在整理一个包 (https://github.com/peterbrittain/asciimatics)。我对需要您安装(或更糟)构建单独的二进制可执行文件(如 PDCurses 或 cygwin)的解决方案不太满意,因此我创建了一个统一的 API,为 Windows、OSX 和UNIX 平台。

现已上线,并已在 CentOS 6/7 和 Windows 7/8/10 以及 OSX 10.11 上进行了测试。您可以使用 pip 从 PYPI 安装它,然后使用 Screen 类来控制您的控制台。正如您从项目gallery 中看到的那样,它应该满足您所有的控制台需求,但如果您需要一些额外的功能,请在 GitHub 上发布增强请求,我会看看我能做什么。

【讨论】:

    【解决方案3】:

    我不知道为什么人们会回答 cmets 的问题,但 debustad 是对的,有一个针对 Windows 的预建诅咒:

    请注意那里还有许多其他有用的库。完成后,安装 pip 和(鲜为人知但非常出色的)bpython 交互式解释器以立即试用:

    pip install bpython
    

    我还推荐Urwid library 用于更高级别的内容。从未在 Windows 上尝试过,但 should be possible 使用其中一个 curses 包。

    【讨论】:

    • 糟糕! Urwid 链接已消失。
    【解决方案4】:

    PDCurses 在 Windows 上工作,但我不知道任何 Python 包装器。 我想知道curses模块是否可以用PDCurses在Windows上实现?

    【讨论】:

      【解决方案5】:

      为您的程序开发两个界面,一个文本控制台 ui 和一个图形 ui。使控制台仅在 linux 上工作。 Windows 上没有人使用文本控制台应用程序。

      【讨论】:

      • +1 那些在 Windows 上使用文本控制台应用程序的人使用 cygwin,它有 ncurses。如果可以将 UI 与实现分开,这总是很好的,这会很好地激励这样做。
      • 如果文本 UI 就足够了,IMO 同时编写文本和图形 UI 将是一种浪费。
      • 好吧,使用这个应用程序的人也会在 Windows 上使用它。特别是因为他们会在 Windows 和 linux 上使用它,所以两个不同的界面对他们来说不是很好。另外,我必须开发两个接口,我不想这样做。
      • 这个问题很好 - 拥有包含 Windows 的便携式控制台代码会很好。说“为 Windows 制作一个 GUI”是没有帮助的。
      • Nobody on windows uses text console apps. 不...就像我目前正在为其编写代码的人一样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多