¿Cómo imprimir en stderr en Python?

Hay varias formas de escribir en 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)

Eso parece contradecir azen de Python # 13 †, entonces, ¿cuál es la diferencia aquí y hay ventajas o desventajas de una forma u otra? ¿Qué camino se debe utilizar?

† ebería haber una, y preferiblemente solo una, forma obvia de hacerlo.

Respuestas a la pregunta(16)

Su respuesta a la pregunta