¿Debo cambiar mi código de Python si actualizo mi Ubuntu?

11

Tengo un software que he estado desarrollando en Python 3 durante años. Hasta hoy, he estado usando Ubuntu Desktop 11.04 pero ahora quiero pasar a una versión superior de Ubuntu.

¿Debo permanecer en Ubuntu 11.04 para no tener que cambiar partes del código fuente de mi software debido a los nuevos cambios en las versiones superiores de Ubuntu?

¿Una versión reciente de Ubuntu no afectará mi software de ninguna manera?

Sylvain Pineau
fuente
18
Esto realmente no es obvio para mí: actualice a 14.04, si algo está roto en su software: corríjalo. Este es un excelente ejercicio para evitar la podredumbre del software. El tipo de problema que puede encontrar es con las dependencias. Puede probar estos por adelantado en un virtualenv.
don.joey
66
@begueradj No quiero minimizar el esfuerzo que va a tomar ni anular sus razones. Es solo: o pones el esfuerzo o tu software realmente no va a durar mucho más. Puede actualizar a 12.04, pero permanecer en una versión EOL es problemático. Y el problema no va a desaparecer solo ...
don.joey
55
@begueradj: edite su pregunta y brinde algunos detalles sobre su software. Describe lo que hace. Describa qué kit de herramientas está utilizando (por ejemplo, GTK? QT?). Describa de qué software de terceros depende (por ejemplo, una versión específica de Firefox? Webkit?). Describa las dependencias de software para construir su software. Sin la información anterior, no obtendrá una respuesta específica a su pregunta. Recibirá una respuesta general como la que tiene actualmente.
fossfreedom
3
11.04 llegó al final de su vida hace un año y medio ... debería haber actualizado hace mucho tiempo.
psusi

Respuestas:

3

Según sus comentarios, probó con éxito su software en máquinas virtuales, lo cual es una buena noticia.

Pero como desarrollador de aplicaciones, debe estar preparado para adaptar su código a las versiones más recientes; de lo contrario, se abandonará rápidamente.

Ahora, para asegurarse de que seguirá funcionando con las nuevas versiones de Ubuntu, le recomiendo que lo mantenga como un paquete y que proporcione un conjunto de pruebas completo para su aplicación y lo llame durante el proceso de compilación del paquete (por ejemplo, llamando setup.py testa su debian/rules override_dh_auto_testsección )

Puede configurar fácilmente las compilaciones diarias de su paquete en un ppa utilizando una receta bzr-builder . De esa manera, se le notificará de todas las fallas de compilación causadas por nuevas versiones de software o dependencias rotas.

Los nuevos lanzamientos generalmente están abiertos para el desarrollo unos días después del anuncio oficial de lanzamiento. Mire nuestra página de ppa , Utopic ahora es parte de la serie de distro que estamos construyendo para:

ingrese la descripción de la imagen aquí

Sylvain Pineau
fuente
3
¿Por qué tienes 2 respuestas en esta misma pregunta? Además, autopkgtest no funciona de esa manera. ¿Y cómo responde esto realmente a la pregunta mejor o más precisamente que cualquiera de las otras preguntas?
Dobey
Publiqué una segunda respuesta durante el período de recompensa. Esta vez para centrarse en cómo evitar problemas de actualización con la esperanza de traer lo que el OP realmente esperaba (ya que por su comentario sabía que su aplicación funciona correctamente con 14.04)
Sylvain Pineau
Te recomiendo que hagas otra pregunta para poner tu respuesta allí. Por cierto, arreglaría la parte de prueba automática. @dobey tiene razón, no funciona de esa manera.
Braiam
@dobey autopkgtest arreglado / eliminado de mi respuesta.
Sylvain Pineau
@Braiam autopkgtest corregido / eliminado de mi respuesta
Sylvain Pineau
13

No, no debes quedarte el 11.04. Ha sido el fin de la vida útil de soporte desde octubre de 2012. Si desea algún tipo de soporte, debe actualizarlo, al menos a 12.04 (que será soportado por tres años más).

Además, incluso las versiones más nuevas de Ubuntu incluyen Python 3.x de forma predeterminada, con el objetivo de eliminar Python 2.x de la instalación predeterminada por completo.

Es posible que tenga problemas al ejecutar su código con una versión más reciente de Python 3.x, pero en general no debería tener problemas. También debe, como desarrollador, estar preparado para lidiar con dichos problemas, independientemente de la versión de Ubuntu en la que se encuentre. Cualquier biblioteca que esté utilizando, o Python en sí, podría tener un error del cual depende su código de comportamiento, y si ese error se corrige, podría hacer que su programa se comporte de manera diferente a como esperaba anteriormente.

dobey
fuente
11

Es difícil dar una respuesta definitiva sin una descripción de su aplicación. Como está utilizando Python3, al menos no está limitado con la rama Python2.x (no habrá Python 2.8).

Ahora, algunas advertencias que pueden aplicarse a su aplicación, con Python3, muchos paquetes ahora están en desuso solo porque la mejor manera de acceder a GLib / GObject / GIO / GTK + es utilizando Python GObject Introspection (también conocido como PyGI).

Finalmente, todavía hay algunas diferencias menores entre las diferentes versiones de python3 (por ejemplo, Argparse no se comporta exactamente igual con python 3.2 y 3.3.

Una cosa que podría intentar es iniciar una VM 14.04 y probar su código con python3.4.

Sylvain Pineau
fuente
No cambiaré mi versión de Python (es imposible), estoy más preocupado por cómo una nueva versión de Ubuntu podría afectar el código fuente de mi software.
¿Qué versión admite oficialmente, 3.2?
Sylvain Pineau
Yo uso la versión 3.1.3
Te animo a que pruebes tu aplicación con python3.2 (arranca una VM 12.04 y sudo apt-get install python3). También puede consultar la nota de lanzamiento de python3.2, pero que yo sepa, python3.2 fue solo un montón de mejoras sobre la rama 3.1.x (argparse fue una de ellas)
Sylvain Pineau
1
Para los programas python3, las versiones actualizadas de python solo proporcionan formas aún más eficientes de realizar tareas complejas. Python3.4, por ejemplo, introduce asyncio y me permitirá deshacerme de los problemas complejos de glib mainloop / threading. Puse una nota sobre argparse porque he quedado atrapado en los cambios recientes, pero no es gran cosa. Así que nuevamente pruebe su sw con versiones recientes (3.2 luego 3.4 con 14.04) pero, como otros responden, dicen que no debería encontrar problemas importantes
Sylvain Pineau el
2

Depende de su código. Si su código usa bibliotecas que no son compatibles, no puede migrar fácilmente a una versión más nueva de un sistema operativo, pero la mayoría de las veces no se producirá ningún problema.

Oceano
fuente
¿Puedes explicarme por qué una biblioteca de Python depende de una versión de Ubuntu dada?
@begueradj No lo hace, pero si está utilizando una biblioteca de Python que ya no se mantiene, podría haberse eliminado del archivo de Ubuntu en algún momento y, por lo tanto, no está disponible en una versión más nueva. Su código entonces fallaría. Por supuesto, puede instalar el paquete de la biblioteca desde una versión anterior de Ubuntu, o desde la fuente, para resolver el problema, aunque no recibirá ninguna actualización; o puede arreglar su código para usar una biblioteca diferente o escribir su propio código para realizar las mismas funciones.
dobey
como dijo @dobey, algunas bibliotecas ya no se mantienen o su versión más nueva rompe la compatibilidad con versiones anteriores. En el pasado, tuve algunos problemas con Turbogears cuando actualizo a una versión más nueva de Ubuntu.
Océano
0

Ubuntu 14.04 tiene paquetes python3, así que eso no es un problema. apt-cache search python3te los mostrará. Más allá de eso, tendrá que leer las notas de la versión de cada versión de Ubuntu entre 11.04 y la "versión superior", y buscar un cambio que rompa su aplicación. No saber nada sobre su desarrollo requiere que grite YMMV, pero supongo que no tendrá problemas insuperables.

Waltinator
fuente
0

Si necesita ejecutar una versión anterior de Python en Ubuntu 14.04, habilite el repositorio de deadsnakes . Tiene las versiones de Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 para Ubuntu 14.04. Si su aplicación es código Python puro y no depende del comportamiento de otros procesos, debería funcionar bien con un intérprete antiguo.

baño
fuente
0

Como otra respuesta, puede usar el entorno virtual si tiene algún problema o puede usar la misma versión de python en 11.04 (descárguelo y compílelo) en 14.04.

Oceano
fuente
Seguramente puedo probar en máquinas virtuales (lo hice), mi software funciona bien ... por el momento ... pero no tengo idea de si fallará más tarde debido a la nueva versión de Ubuntu.
1
Debido a que Ubuntu 14.04 es una versión LTS y se basa en su filosofía, no cambiarán la versión (bomba en la versión principal) y la configuración, creo que no debe tener ningún problema.
Océano