【发布时间】:2011-01-14 11:55:44
【问题描述】:
我正在为使用 Qt 的应用程序开发交互式 python shell。但是我似乎无法获得重定向的交互式帮助。我的python代码中有这个:
class OutputCatcher:
def __init__(self):
self.data = ''
def write(self, stuff):
self.data += stuff
sys.stdout = OutputCatcher()
但是,当我运行 help() 时,它不会重定向交互式帮助,它只是将它转储到我运行 python 脚本的控制台。如果我在控制台中按 ctrl+c,它会将其发送到我的 OutputCatcher 对象。
我确实尝试了谷歌,但真的找不到任何东西。
【问题讨论】:
-
代码应该在什么平台上运行?您需要在当前 Python 解释器中运行控制台,还是可以启动子进程?
-
平台可以是 Linux、Windows 和 OSX,几乎任何东西 :)
-
好的,我的第二个问题呢?仅在子进程中运行 Python 交互式解释器是否可行,还是需要从交互式解释器内部访问当前解释器变量?
-
是的,我需要访问变量,它是一个更大的 C++ 项目的一部分。 python 控制台只允许访问项目的公共 API。