[pyar] Portando codigo de python 3.x a python 2.x

Manuel Alejandro Cerón Estrada ceronman en gmail.com
Mie Mar 13 07:07:26 ART 2013


2013/3/12 Pablo SEMINARIO <pabluk en gmail.com>:
> Hola a todos,
>
> resulta que tenia escrito el código de una simple librería en python 3 y
> todo andaba bien, hasta que quise comenzar a usar "Read the Docs"[1] para
> generar la doc, y los virtualenvs que usan corren solo python 2.x, entonces
> me dije porque no hacer mi código compatible con python 2.x.
>
> Y entonces la pregunta es cual es la mejor manera de hacer convivir código
> compatible con python 3.x y 2.x en el mismo módulo?
>
> Estuve leyendo el How-To "Porting Python 2 Code to Python 3"[2] y lo que me
> queda mas o menos claro es que puedo hacer algo como por ejemplo:
>
> if sys.version_info[0] < 3:
>     # Python 2.x
>     from xmlrpclib import ServerProxy
> else:
>     # Python 3.x
>     from xmlrpc.client import ServerProxy

Para imports es más común usar un estilo como este:

try: # Python 3
    from xmlrpc.client import ServerProxy
except ImportError: # Python 2.x
    from xmlrpclib import ServerProxy

> pero no sé, si esa esa la mejor manera de hacerlo, o hay alguna otra forma
> más recomendable. Sin tener que mantener branchs diferentes para cada
> versión.

Si quieres mantener código que funciona en 2.x y en 3.x es inevitable
mantener algunos branchs.

Saludos.

Manuel.



More information about the pyar mailing list