Python curses 不支持重定向。

16

我正在尝试在Win7的Eclipse的PyDev中使用Curses。

我已经安装了Python 3.2 (64位)和curses-2.2.win-amd64-py3.2。当我将以下测试代码输入到PyDev中时:

import curses  

myscreen = curses.initscr()
myscreen.border(0)
myscreen.addstr(12, 25, "Python curses in action!")    
myscreen.refresh()
myscreen.getch()     
curses.endwin()

它没有显示任何语法错误,所以我认为curses已经成功安装。

然而,当我以 Python Run 的形式运行它时,输出显示:“不支持重定向”。我不知道这个问题是从哪里来的。我查了很多谷歌,找不到相关的信息。


6
Eclipse没有终端仿真器。请从终端运行它。 - pihentagy
你是通过终端运行解决了这个问题吗? - tdihp
5个回答

18

最近的PyCharm版本(我当前正在运行2017.2,不确定何时添加了此选项,或者它是否一直存在)具有“在输出控制台中模拟终端”选项。启用此选项后,Curses可以正常工作。

输入图像说明


1
当我启用它时,它只会显示一个闪烁的黑色框。我看不到我正在浏览的选项。 - Giacomo
1
对于未来的读者,这可以通过选择窗口顶部的下拉菜单,在其中运行配置并选择“编辑配置”来启用。您还可以在Pycharm 2022中找到此选项,方法是在“运行”->“编辑配置”下。 - Kit

10

如果您使用的不是终端,就无法使用curses。

可能之所以出现这个问题是因为您是在像PyCharm或其他IDE中运行脚本。

所有IDE都会提供非终端的控制台,这就是问题所在。


1

对于Pycharm用户,codeape提供的解决方案很好:

快照


0

你不能使用任何带有curses包的IDE来运行Python文件。我曾经在pycharm上运行,自然无法运行。

改用命令行运行:

为了测试,请按照以下步骤进行:

  1. 在桌面上打开记事本,复制并粘贴代码,将其另存为filename.py
  2. 打开命令行,将目录更改为桌面,使用以下命令:cd Desktop,然后按回车键,输入 python filename.py 并按回车键,你的程序一定会运行

0

我的解决方法是创建一个运行配置,调用curses脚本。这样做的小额外开销值得不必切换到终端并手动运行脚本数百次会话。我使用Intellij,但我想在PyCharm中该过程应该类似。

期望的结果是方便地通过按钮运行脚本:

Intellij Run Scripts

首先创建一个调用入口脚本的脚本,例如:

ptyhon name-of-script.py

然后,为每个脚本创建一个配置:

  1. 进入编辑配置。
  2. 点击加号按钮并添加一个Shell脚本。
  3. 输入Shell脚本的路径。

Intellij Shell Script Configuration

这是一个目录的图片,里面有一些示例脚本。

Directory tree of ncurses scripts

我使用这个过程来查看我的进展。我的诅咒脚本非常简单,所以幸运的是我可以不用调试器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接