Python: ¿Se debe comenzar un nuevo proyecto directamente en Python 3.x?

¿Qué versión de Python puede recomendar para un proyecto a largo plazo (años)? ¿Debería uno usar 2.6+ o 3.x ya es estable? (sólo se requieren bibliotecas estándar)

ACTUALIZACIÓN: según las respuestas a continuación, Python 3.x todavía tiene errores críticos. Por favor, también vea la lista de errores de Python .

Creo que se reduce a qué tan cerca puede controlar el entorno en el que se ejecutará su aplicación. Si está produciendo una pieza de software en la que su cliente ‘instalará’ python para ejecutar su software, entonces también puede usar la última versión (Python 3.x). Si está apuntando a instalaciones existentes de Python, entonces sería mejor elegir la compatibilidad con 2.5 o 2.6 ya que están más extendidas.

Python 3.x es estable. Ese no es el problema. El problema con esto es la compatibilidad. Si tiene la capacidad de usar lo último y lo mejor, entonces debería usar la nueva versión. Para nuevos proyectos, 3.x sería la opción obvia.

Por eso debes usar Python 3.x:

Python 2.x:

>>>True = False >>>True False 

Python 3.x:

 >>> True = False File "", line 1 SyntaxError: assignment to keyword 

Fuente: característica de lenguaje más extraño

Prejuicio: Pero muchos paquetes aún no están listos para Python 3

Esto es (a) no es cierto ( fuente ) y (b) no es importante para un principiante.

Python 3 no tiene nada de malo, pero muchas bibliotecas aún no se han portado. Por ejemplo, desde PyGame FAQ :

El soporte de Python 3 está incompleto y todavía está en la etapa de desarrollo

Y desde NumPy :

El soporte para Python 3 está planeado, pero aún no está progtwigdo.

Todo depende de qué tan importantes sean las bibliotecas de terceros para ti y de si ya están portadas.

Lo bueno de Python3 es que hay una forma automática de transferir sus progtwigs desde Python2. Pero el progtwig tiene que cumplir con ciertos criterios.

Creo que el mejor enfoque por ahora es escribir el código Python2 y probarlo en el modo de prueba Python3 (ejecutar python -3 program.py ). De esta manera, no tiene que preocuparse por las bibliotecas que faltan ahora y puede convertir su progtwig a Python3 tan pronto como tenga sentido.

THC4k menciona 2to3 , y solo quería señalar que también hay un paquete 3to2 . Nunca he usado ninguno de los dos paquetes, pero he oído que 3to2 es más indulgente que 2to3.

Edición: solo quería enfatizar lo que otros han sugerido: si elige usar uno de estos convertidores para lanzar su software para 2.6 o 3.0, probablemente querrá tener un sistema de prueba sólido en su lugar (unittest, doctest, etc.) Con una cobertura de prueba decente para dormir profundamente por la noche!

Si está iniciando su proyecto ahora, y todas las bibliotecas de terceros que desea usar ya están portadas a Python 3, y su sistema operativo de destino (realmente me refiero a la distribución de Linux) empaqueta Python 3, por supuesto.

Adelante, usa Python 3.