繁体   English   中英

打印未显示在 ipython 笔记本中

[英]Print not showing in ipython notebook

我正在使用ipython notebook ( http://ipython.org/notebook.html ) 进行演示,但似乎打印功能不起作用:

在此处输入图片说明

为清楚起见,上图中的命令在此处重写。

In [1]: 'hello world'
Out [1]: 'hello world'

In [2]: print 'hello world'

简而言之, [2]没有打印输出。

有谁知道这是否是一个已知的错误? 有谁知道如何解决它?

当我的第一个代码单元是:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

然后我像这样评论了第二行和第三行:

import sys
#reload(sys)
#sys.setdefaultencoding("utf-8")

重置内核并重新运行程序,现在我的打印语句工作正常。

后来,我发现当我第一次遇到打印问题时,所有打印输出实际上都被发送到 ipython 控制台终端(在我的 Linux 机器上),而不是嵌入到笔记本上。

我遇到了类似的问题( reload(sys)在我导入的包中)。

我的解决方法是在脚本的顶部,我导入sys ,并将sys.stdout存储在一个单独的变量中,例如stdout

然后我导入所有其他内容,包括调用reload(sys)

然后,最后,我设置sys.stdout = stdout ,它将输出重定向回 IPython 笔记本

采取@JoostJM 所说的,这是有效的,并将其作为代码:

import sys
stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = stdout

更改默认编码会将输出定向到控制台,这会将其设置回 jupyter 笔记本。

我使用的是 Python 3,所以解决方案对我来说有点不同。

import sys
stdout = sys.stdout

# some functions that mess up sys.stdout

sys.stdout = stdout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM