Print not showing in ipython notebook

PythonPrintingIpythonJupyter Notebook

Python Problem Overview


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?

Python Solutions


Solution 1 - Python

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.

Solution 2 - Python

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

Solution 3 - Python

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.

Solution 4 - Python

I am using Python 3, so the solution is a bit different for me.

import sys
stdout = sys.stdout

# some functions that mess up sys.stdout

sys.stdout = stdout

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionalvasView Question on Stackoverflow
Solution 1 - PythoncnaakView Answer on Stackoverflow
Solution 2 - PythonJoostJMView Answer on Stackoverflow
Solution 3 - PythonprincelySidView Answer on Stackoverflow
Solution 4 - PythonChandler BView Answer on Stackoverflow