¿Por qué no cambias a Python 3.x?

Pido esto por razones desplegables. Al igual que en, si escribo una solución en python, me siento obligado a escribir a 2.x debido a la falta de adopción de python 3. Esta es una de mis principales preocupaciones diarias, y quiero averiguar qué está pasando.

Para muchas de las preguntas basadas en python aquí, las personas están dando soluciones que simplemente no funcionan en python 3.x.

Entonces, hago la pregunta: ¿Qué le ha impedido cambiar a Python 3.x en su entorno personal o laboral? El script de conversión existe y, sin embargo, los progtwigdores (que suelen ser los primeros en adoptar todo) parecen rehusarse a actualizar.

¿Por qué?

[Editar 03/10/2014: esta respuesta está desactualizada. Django ha apoyado a Python 3 durante algún tiempo.]

[Sin embargo, también se debe tener en cuenta que los paquetes y extensiones de terceros de django utilizados en muchos proyectos de Django se encuentran en varias etapas de la implementación de la compatibilidad con Python 3. Se pueden encontrar más detalles en el sitio web de paquetes de Django que rastrea los estados de varios proyectos.]

Django no se ha movido a 3.0. Eso es todo lo que necesito saber.

preguntas relacionadas

  • ¿Afectará la adopción la incompatibilidad con versiones anteriores de Python 3.0?
  • ¿Es Python 3 un buen punto de partida cuando quieres aprender Python?
  • Si voy a aprender Python, ¿debería aprender 2.x o simplemente saltar a 3.0?
  • ¿Quién está usando Python 3.0?
  • Versión de Python para un Newbie
  • ¿Vale la pena aprender Python 2.6 con la versión 3.0 que viene?

La mayoría de las respuestas en estas preguntas hacen eco de los mismos sentimientos. Aparte de Django, demasiados frameworks / bibliotecas (WxPython, PyGame, Django, etc.) todavía no lo han adoptado. Estoy seguro de que no haré el movimiento hasta que lo hagan.

Debido a que las principales bibliotecas de las que depende mi código base no han lanzado una versión 3.x. (wxPython, matplotlib, numpy, etc.)

Así que la responsabilidad va río arriba desde mi punto de vista.

Si todas mis dependencias fueran compatibles con 3.x, probablemente ya habría cambiado.

  1. Los módulos de terceros comstackdos no se han actualizado.
  2. Sintaxis diferente
  3. Enteros más lentos.
  4. El canal IRC #python en freenode tiene en su título que es demasiado pronto para cambiar.

Herramientas y bibliotecas de terceros. Estoy teniendo problemas para hacer que algunas cosas funcionen por debajo de 2.6 (no hay MUCHOS problemas, eso sí, pero sí algunos).

Como lo veo, el ecosistema es una de las fortalezas más grandes de Python, y al llegar a 3.0 en este punto, gran parte de eso se pierde en la ventana. (En un año, estoy seguro de que la historia será totalmente diferente.)

(Obviamente, hay un problema con el huevo y la gallina aquí, pero afortunadamente no es mi problema resolverlo, así que me quedaré con 2.6 por un tiempo).

Para muchas de las preguntas basadas en python aquí, las personas están dando soluciones que simplemente no funcionan en python 3.x.

Creo que respondiste tu propia pregunta aquí. La falta de compatibilidad con versiones anteriores hace que 3.0 sea mucho más difícil de vender que una actualización perfecta, ya que tiene que ajustar su forma de pensar y descartar algunas técnicas de progtwigción para usar la nueva versión.

Llámame cuando tengan un script de actualización para mi cerebro.

Debido a que la instalación predeterminada de 2.5 en Mac OSX Leopard funciona bien. No tengo necesidad de actualizar y no veo ninguna ventaja en la actualización, excepto el final de los problemas de Unicode.

Si está interesado en pasar a Py3k, una forma interesante sería escribir código en Py3k y usar un script 3to2 que se está escribiendo ahora como parte del proyecto Google Summer of code, en las líneas de script 2to3.

El sistema operativo que más uso, Debian, no tiene un paquete de Python 3, ni siquiera en la twig “inestable” (completamente nueva). A menos que lo compile yo mismo (que es bastante del siglo XX), no significa Python3 para mí.

Apuesto a que es el mismo problema con muchos sistemas operativos.

Desafortunadamente, por la misma razón que la mayoría de los demás han dicho: las bibliotecas de terceros aún no se han hecho compatibles con 3.0. Por este motivo, además de que algunas distribuciones de GNU / Linux (Ubuntu en mi caso) todavía vienen con Python 2.6, todavía no puedo lanzar por completo la ventana 2.x.

Sin embargo, el cambio a 3.0 no es un IMO importante. Excepto que “imprimir” es una función y el nuevo sistema de formateo de cadenas, en realidad es más o menos lo mismo que antes.

De hecho, encuentro que la mayoría de mis scripts antiguos (aquellos que no dependen de 3.0 bibliotecas de terceros incompatibles) funcionarán perfectamente en 3.0 después de actualizar todas las impresiones y el formato de cadena. En algunos casos, también tuve que cambiar algunos nombres de módulos (específicamente cosas del módulo de “correo electrónico”), pero aparte de eso, nada importante.

Además, todos los scripts que he actualizado para compatibilidad con 3.x hasta ahora todavía parecen funcionar perfectamente en 2.6 (pero no en la anterior 2.x por supuesto, ya que carecen de la nueva syntax 3.x).

La razón principal por la que no me cambio es que tantos libros y sitios web de desafío de encoding aún son 2.x. Instalé 3.x y me di cuenta muy rápidamente de que tenía que desinstalar e ir a 2.x.

Debido a la falta de compatibilidad con versiones anteriores, el cambio es difícil, especialmente si hay un código C involucrado. Y aunque entiendo que lo de Unicode / String puede ser muy útil para algunas personas, ciertamente no me importa.

Básicamente, Py3k no resolvió muchos problemas que me interesan (problemas de distribución, versiones de módulos, modelo de importación simplificado).

Python 3+ no soporta numpy. Corrección: ahora lo hace. Como ahora soporta mathplotlib.