¿Deberíamos usar python 2.6 o 2.7 o 3.x? [cerrado]

25

La versión de Python que estoy usando es 2.6 , y hay una 2.7 y 3.x. Por lo general, uso Python para algún programa / fragmento trivial. Me doy cuenta de que hay algunas diferencias importantes entre 2.xy 3.x. Realmente me gustaría saber, si voy a hacer un proyecto más grande con python, ¿qué versión de python debería usar?

¿Debo actualizar a 2.7, ir a 3.xo quedarme con 2.6?

La decisión debe basarse en estos términos:

  1. Número de usuarios en internet como comunidad. Más usuarios significan más paquetes de código abierto y ayuda de ellos.

  2. Funcionalidad

  3. Apoyo del equipo oficial de desarrollo.

  4. Compatibilidad para el módulo / paquete existente.

¡Gracias!

lamwaiman1988
fuente
55
¿Alguien puede señalar algún cambio beneficioso realizado por python 3.x?
lamwaiman1988
1
Menciona que sabe que la compatibilidad con los módulos existentes es un problema, pero no nos dice en qué módulos existentes se basa su código. Esta pregunta es casi incontestable.
Wooble
2
fuera de contexto; recomendaciones Y gorila vs tiburón en una pregunta ¡guau!
3
Esta pregunta y sus respuestas solo serán útiles durante un breve período de tiempo. Lo que tiene sentido ahora podría no tener mucho sentido dentro de un año, ya que 3.x se vuelve más maduro.
Bryan Oakley
Observando que (a) la pregunta sigue siendo relevante en 2014 (por ejemplo, RobotFramework no funciona con Python 3) y (b) cerrar esta pregunta mantiene esta página obsoleta porque, a pesar de que aparece en los resultados de búsqueda de Google, hay nuevas respuestas No se puede publicar.
Bob Stein

Respuestas:

27

Sugeriría Python 2.7 yo mismo. Es el último lanzamiento de la serie Python 2.x. La mayoría de los módulos de Python están diseñados para funcionar con Python 2.x. Hay un movimiento para intentar pasar a Python 3, pero cualquiera de los módulos de Python 3 está escrito para 2 y 3. Recuerde no usar características antiguas que no están disponibles en Python 3, para que pueda simplemente 2to3 su código para haz que se ejecute en Python 3.

Si utiliza Python 3, es uno de los primeros en adoptar y es probable que tenga que decirle a otros que descarguen Python 3 (muchas computadoras solo tendrán Python 2). Por otro lado, las nuevas características solo llegarán a Python 3. Python 2 está permanentemente en mantenimiento. Por lo tanto, no sugeriría seguir usando Python 2 en 10 años.

Si desea vigilar los paquetes de Python y su compatibilidad con Python 3, puede vigilar este sitio: http://python3wos.appspot.com/

jsternberg
fuente
django no es compatible con 3.x? Entonces, ¿el usuario familiarizado con django simplemente no puede usar 3.x?
lamwaiman1988
normalmente cuando se lanza una nueva versión, significa que es mejor que la anterior. ¿Y por qué Python se lanzará en la serie 2.xy otra en la serie 3.x? ¿Cuál es la diferencia real en ellos?
CALIENTE el
44
Python 3 realizó algunos cambios en el lenguaje que son beneficiosos, pero no son compatibles con algunas de las características de Python 2. Por lo tanto, algunas cosas se eliminaron y otras se agregaron (y las cosas eliminadas las hacen no compatibles).
jsternberg
+1 para 2.7, la mejor relación de compatibilidad (al menos para las bibliotecas que uso) hasta que 3 esté más extendido
wildpeaks
@Ashinkn Los cambios se pueden encontrar aquí docs.python.org/3.0/whatsnew/3.0.html . El principal cambio que rompe la compatibilidad es el cambio del uso de Unicode (a diferencia de ASCII) como el tipo de cadena predeterminado. Donde la gente usaba cadenas como byte [] antes hay un nuevo tipo de bytearray que se usa en su lugar. Además, las cadenas 2x definidas explícitamente como unicode deben cambiarse a cadenas normales.
Evan Plaice
19

Mi opinión es que necesitamos comenzar a llevar a las personas a Python 3 y si hay bibliotecas que no son compatibles con Python 3, debemos comenzar a hacer que ese no sea el caso.

Python 3 es el futuro del lenguaje, y cuanto más código escribamos usándolo, mejor.

Musaab
fuente
Lo que necesitamos es un intérprete único que sea compatible con ambas versiones de python y pueda analizarlas de manera inteligente. Es decir, dicho intérprete compilaría python2 y python3 en el mismo código de bytes para que sean compatibles, lo que hace posible utilizar python3 con una biblioteca python2. Si C, C ++ y Java pueden hacerlo, también Python puede hacerlo.
Braden Best
4

Django ahora "experimentalmente" es compatible con Python 3.2+ como se puede ver en sus publicaciones aquí .

Dado eso, y el hecho de que Python 3.x es el futuro del lenguaje, diría que Python 3 es el mejor ahora.

CorayThan
fuente
2

Para cada proyecto, verifique si todas las bibliotecas requeridas para un proyecto ya tienen soporte para python 3.x, luego use python 3.x porque es futuro y es la última versión estable oficial.

De lo contrario, use lo que necesite para la compatibilidad de la biblioteca.

cnd
fuente
2

Realmente no importa si usa Python 2.7 o Python 3 Si no usa características antiguas en Python 2.7, puede simplemente 2to3 su código para que se ejecute en Python 3.

Ramchandra Apte
fuente
0

Estuve en el mismo barco anteriormente y esto es lo que encontré. Python 2.6, 2.7 y 3.2 pueden instalarse lado a lado usando MacPorts y pueden cambiarse fácilmente. (Soy un usuario de Mac). Busque alternativas a Macports para su plataforma.

ThinkCode
fuente
0

Hasta que un puente se desarrolle intrínsecamente dentro de 3.x para permitir el uso transparente de los paquetes 2.7, un movimiento está lleno de peligros porque el lenguaje es realmente todo sobre lo que se le ha contribuido. Las consideraciones formales y la pureza son insignificantes en comparación. Es probable que este puente transparente no se produzca por pura terquedad pedante y desprecio por la base de usuarios.

Don Gateley
fuente
Tal puente transparente es inalcanzable. Los paquetes 2to3 y seis proporcionan un amplio puente, pero están lejos de ser transparentes.
Martijn Pieters