2008-10-04 16 views
13

¿Alguien tiene una idea de cuánto tiempo pasará antes de que "casi todas" las bibliotecas de Python ampliamente utilizadas funcionen con Python 3.0?¿Cuándo la mayoría de las bibliotecas cumplen con Python 3?

Estoy planeando permanecer en 2.X por un tiempo porque no quiero comenzar a portar cosas y luego encontrar que alguna biblioteca en la que ya confío o una nueva biblioteca que podría empezar a usar aún no funciona con py3k.

Según tengo entendido, el proceso beta de py3k se diseñó específicamente para que los desarrolladores de la biblioteca tuvieran tiempo para mover sus cosas. ¿Ha estado sucediendo esto?

ejemplos de los tipos de bibliotecas que estoy hablando serían PIL, numpy/scipy, SQLAlchemy, BeautifulSoup, CherryPy ...

Respuesta

4

Los ejemplos que usted ha enumerado probablemente será portado muy rápidamente, ya que son tan ampliamente utilizado.

Me sorprendería si BeautifulSoup lleva más de un mes (de hecho, estoy sorprendido de que no se haya portado ya usando las betas py3k), las cosas más complejas como numpy pueden tardar un poco más, especialmente porque 2to3 solo funciona en fuentes Python, no en módulos C.

Es difícil generalizar: es posible que algunos módulos nunca se porten, algunos pueden tardar días, otros pueden tardar años. Podría terminar siendo una situación como "bueno, no estoy transfiriendo mi biblioteca a Python3, ¡nadie lo está usando!"/"Bueno, no estoy transfiriendo mi proyecto a python3, ¡ninguna biblioteca se ha actualizado todavía! ", pero espero que no!

+0

Creo que fue un poco apresurado al declarar que NumPy sería portado pronto. Ahora son seis meses después y todavía no se ha portado a 2.6 por completo. –

+1

Dije que puede llevar "más tiempo" virar por la borda ... aunque tienes razón, estaba un poco demasiado optimista ... No creo que ni siquiera se haya portado BeautifulSoup (moví un proyecto en el que lo estaba usando) a ElementTree debido a esto) – dbr

1

Algunos comentarios que vi en el repositorio CherryPy es que algunos de los cambios en el módulo de sockets van a requerir una amplia reelaboración de la lógica. Espero que CherryPy sea más lento que algunos de los otros proyectos para ser portado a 3.0.

+0

[ahora se ejecuta en Python 3.x] (http://www.cherrypy.org) – Tshepang

4

En realidad, la respuesta a su pregunta depende de las acciones de tantas personas diferentes (todos los mantenedores de bibliotecas fuera de Python std lib), que nadie puede dar una respuesta confiable pregunta.

Dicho esto, ya ha recibido algunas respuestas, y tendrá más. Sin embargo, estamos de acuerdo en una cosa: como regla general, normalmente sugiero que los proyectos importantes (relacionados con el trabajo, principalmente) no se transfieran de inmediato a las nuevas tecnologías de desarrollo (Python 3, .Net 3.x, etc.) hasta que respuestas como las suyas ya han sido respondidas y muchos de los errores iniciales se han resuelto.

Para proyectos de mascotas o de prueba, sin embargo, me gustan las actualizaciones y la experimentación.

1

La idea general del plan de migración es mantenerse en 2.x y luego, lentamente, cambiar el código a 3.x. Tendrás al menos 1.5 años para preocuparte por eso. Sin embargo, está el problema del huevo y la gallina.

1

Recuerdo que Adrian (BFDL de django) dijo que Guido les había dado un plazo de 5 años para portar.

0

Las bibliotecas que mencione se transportarán una vez que alguien dedique un poco de tiempo a portarlas.

En el caso específico de NumPy/SciPy, una gran parte del código se escribe como extensiones C. No existe una herramienta 2to3 para las extensiones C, por lo que se necesitará una gran cantidad de horas hombre para transferir el código al formato que necesitan las extensiones cPython3 C.

0

A partir del 05/01/2013, todas las bibliotecas que mencionas ahora son compatibles con Python 3:

El trabajo de portadoras ha estado sucediendo gradualmente; algunas bibliotecas importantes como Django fueron portadas bastante recientemente.

Cuestiones relacionadas