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 不支持重定向的主要内容,如果未能解决你的问题,请参考以下文章

kindeditor 加入七牛云上传

msys 没有以交互方式打开程序

python怎么重定向输入

python 爬网页 遇到重定向怎么处理

URL重定向漏洞,python打造URL重定向漏洞检测脚本

自适应支付 PayPal 中不支持卡支付