2009-05-06 9 views

Respuesta

18

De python.org:

The current production versions are Python 2.6.2 and Python 3.0.1.

Así que, sí.

Python 3.x contiene algunos cambios hacia atrás incompatibles, por lo python.org también dice:

start with Python 2.6 since more existing third party software is compatible with Python 2 than Python 3 right now

+3

+1: Cita la documentación. Un enlace hubiera sido aún mejor. –

+1

@ S.Lott cambiado! –

10

Ubuntu ha cambiado a 2,6 en él es la última versión, y no ha tenido ningún problema significativo. Entonces yo diría "sí, es estable".

6

Depende de las bibliotecas que utiliza. Por ejemplo, no hay un paquete InformixDB precompilado para 2.6 si tiene que usar Python en Windows.

También web2py framework se pega con 2.5 debido a algún error en 2.6.

Personalmente utilizo CPython 2.6 (caballo de batalla) y 3.0 (experimental), y Jython 2.5 beta (para mi prueba con JDBC y ODBC).

4

Sí, pero esta no es la pregunta correcta. La pregunta correcta es "¿Puedo usar Python 2.6, teniendo en cuenta las incompatibilidades que introduce?". Y la respuesta breve es "muy probablemente sí", a menos que use una lib específica que no funcionaría con 2.6, que es bastante raro ".

+1

¿qué incompatibilidades? – SilentGhost

+0

E.G: la implementaciónq os.popen2 y os.popen3 en python 2.6 espera que el argumento cmd sea una cadena. La documentación - ayuda (os.popen3) - establece que el argumento cmd puede ser una secuencia en Unix. No es incompatible con os.popen * en python 2.5 –

+0

Creo que estás malinterpretando los documentos. http://www.python.org/doc/2.5.4/lib/os-newstreams.html#l2h-2628 dice: "Además, para cada una de estas variantes, en Unix, cmd puede ser una secuencia, en cuyo caso los argumentos se pasarán directamente al programa sin intervención de shell (como con os.spawnv()). Si cmd es una cadena, se pasará al shell (como con os.system()). " – SilentGhost

1

he encontrado 2.6 a ser bastante bueno con dos excepciones:

  1. Si se está usando en un servidor, he tenido problemas en el pasado con algunas bibliotecas que son utilizados por los elementos de el servidor (Debian Etch IIRC). Es posible con un poco de jiggery pokery mantener varias versiones de python al unísono, aunque si eres cuidadoso :-)
  2. Esto ya no es cierto, pero la última vez que probé 2.6, wxPython no se había actualizado, lo que significaba todas mis herramientas GUI que he escrito se rompieron. Ahora hay una versión disponible que está construida contra 2.6.

Así que te sugiero que comprueba todos los módulos que utiliza y comprobar su compatibilidad con 2.6 ...

1

Recientemente he pasado de 2,6 a python2.5 para mi proyecto de investigación que involucra una gran cantidad de bibliotecas 3 ª parte (scipy, pydot, etc.) y cosas relacionadas con el trago.

Lo único que tenía que cambiar era convertir todas las cadenas con

s = unicode(s, "utf-8")

antes de que yo le daba de comer en el módulo de registro.

De lo contrario, tengo cada vez que

Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 773, in emit
stream.write(fs % msg.encode("UTF-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 31: ordinal not in range(128)

+0

Tengo ese UnicodeDecodeError también, ¿puedes decirme cómo convertir cadenas con "s = unicode (s," utf-8 ")"? – erical

Cuestiones relacionadas