我给ipython用户组发了电子邮件,得到了一些帮助。现在有一个
support ticket
在未来版本的ipython中修复此功能。下面是一段代码片段,其中包含一个解决方法:
import sys
from IPython.Shell import IPShellEmbed
class IPShellDoctest(IPShellEmbed):
def __call__(self, *a, **kw):
sys_stdout_saved = sys.stdout
sys.stdout = sys.stderr
try:
IPShellEmbed.__call__(self, *a, **kw)
finally:
sys.stdout = sys_stdout_saved
def some_function():
"""
>>> some_function()
'someoutput'
"""
IPShellDoctest()(local_ns=locals())
return 'someoutput'
if __name__ == '__main__':
import doctest
print "Running doctest . . ."
doctest.testmod()