Есть несколько способов написать в stderr:
# Note: this first one does not work in Python 3
print >> sys.stderr, "spam"
sys.stderr.write("spam\n")
os.write(2, b"spam\n")
from __future__ import print_function
print("spam", file=sys.stderr)
Это кажется противоречащим дзен Python # 13 †, так в чем же разница и есть ли какие-либо преимущества или недостатки в том или ином случае? Какой способ следует использовать?
† Должен быть один - и желательно только один - очевидный способ сделать это.