Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Print not showing in ipython notebook

I am using ipython notebook (http://ipython.org/notebook.html) to do a demo and it seems like the print function is not working:

enter image description here

The commands in the above picture are rewritten here for clarity.

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

In [2]: print 'hello world'

In short, there's no print output from the [2].

Does anyone know whether it's a known bug? And does anyone know how to fix it?

like image 944
alvas Avatar asked Aug 25 '14 20:08

alvas


3 Answers

I had a similar printing problem when my first code cell was:

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

Then I've commented the second and third lines like this:

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

Reset the kernel and re-ran the program and now my print statements are working properly.

Later on, I've found that when I was first having the printing problem, all print outputs were actually being sent to the ipython console terminal (on my Linux box), instead of being embed on the notebook.

like image 174
cnaak Avatar answered Oct 22 '22 00:10

cnaak


I encountered a similar problem (the reload(sys) was in a package I imported).

My workaround was that at the top of the script, I import sys, and store sys.stdout in a separate variable, e.g. stdout.

Then I import all the other stuff, including the one that calls reload(sys).

Then, at the end, I set sys.stdout = stdout, which redirects the output back to the IPython notebook

like image 31
JoostJM Avatar answered Oct 21 '22 22:10

JoostJM


Taking what @JoostJM has said, which works, and putting it as code:

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

Changing the default encoding directs the output to the console, this sets it back to the jupyter notebook.

like image 27
princelySid Avatar answered Oct 21 '22 23:10

princelySid