Python curses 不支持重定向
Posted
技术标签:
【中文标题】Python curses 不支持重定向【英文标题】:Python curses Redirection is not supported 【发布时间】:2013-05-20 08:59:31 【问题描述】:我正在尝试在 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 运行时,输出显示:不支持重定向。我不知道这个问题来自哪里。我google了很多,但找不到相关信息。
【问题讨论】:
Eclipse 没有终端模拟器。从终端运行它。 从终端运行解决问题了吗? 【参考方案1】:对于 Pycharm 用户,codeape 提供的解决方案可以正常工作:
Snapshot
【讨论】:
【参考方案2】:我的解决方法是创建一个调用 curses 脚本的运行配置。无需切换到终端并在一个会话中手动运行脚本数百次,这点开销是值得的。我使用 Intellij,但我想这个过程在 PyCharm 中应该是相似的。
想要的结果是一个按钮运行脚本的便利性:
首先创建一个调用入口脚本的脚本,例如:
ptyhon name-of-script.py
然后,为每个脚本创建一个配置:
-
转到编辑配置。
单击加号按钮并添加一个 Shell 脚本。
输入 shell 脚本的路径。
这是一个包含几个示例脚本的目录图片。
我使用这个过程来查看我的进度。我的 curses 脚本非常简陋,所以幸运的是我可以在没有调试器的情况下生活。
【讨论】:
【参考方案3】:您不能使用任何 IDE 来运行带有 curses 包的 python 文件。以前在pycharm里跑,自然跑不了。
换成命令行运行:
按照我的以下步骤进行测试
-
在桌面打开记事本并复制粘贴代码并保存为filename.py
打开命令行切换目录到桌面使用下面的命令
cd Desktop
然后回车输入python example.py
然后回车,你的程序肯定会运行
【讨论】:
【参考方案4】:最近的 PyCharm 版本(我目前正在运行 2017.2,不确定何时添加此选项,或者它是否一直存在)具有“在输出控制台中模拟终端”选项。诅咒在选中此选项时有效。
【讨论】:
当我启用它时,它只是显示为一个闪烁的黑框。我看不到我正在经历的选项。【参考方案5】:您不能期望将curses
与非终端一起使用。
您可能会得到这个,因为您是从 IDE 内部运行脚本,例如 PyCharm 或任何其他。
所有 IDE 都提供不是终端的控制台,所以这就是问题所在。
【讨论】:
以上是关于Python curses 不支持重定向的主要内容,如果未能解决你的问题,请参考以下文章