How to print to stderr in Python

In order to have Python print to stderr , we'll need to point the print function to the sys.stderr file. It's done slightly differently in Python 3 compared to Python 2.

Python 3

import sys

print('Hello world', file=sys.stderr)

In Python3, print is a function and takes the output file as an argument. We can use it to print to any file, and in this case it's sys.stderr.

Python 2

In Python 2, we can use the print >> sys.stderr syntax, which has been deprecated in Python 3, since in Python 3 print is a function instead of a statement.

import sys

print >> sys.stderr, 'Hello world'

Other methods

Of course, since sys.stderr is a file object in both Python 2 and Python 3, we can use the write() method.

import sys

sys.stderr.write('Hello world')

Just be mindful that file.write() doesn't automatically add a newline at the end of each write call like print does, so you might want to append a \n to your output explicitly.