Devo cambiare il mio codice Python se aggiorno Ubuntu?


11

Ho un software che sviluppo in Python 3 da anni. Fino ad oggi, ho usato Ubuntu Desktop 11.04 ma ora voglio passare a una versione successiva di Ubuntu.

Devo rimanere su Ubuntu 11.04 in modo da non dover cambiare parti del codice sorgente del mio software a causa di nuove modifiche nelle versioni superiori di Ubuntu?

Una versione recente di Ubuntu non influirà in alcun modo sul mio software?


18
Questo per me è davvero semplicissimo: aggiorna alla 14.04, se qualcosa non funziona nel tuo software: correggilo. Questo è un esercizio eccellente per evitare il marciume del software. Il tipo di problema che potresti riscontrare è con le dipendenze. Puoi testarli in anticipo in virtualenv.
don.joey,

6
@begueradj Non voglio minimizzare lo sforzo che ci vorrà né annullare le tue ragioni. È solo: o ti impegni o il tuo software non durerà molto a lungo. Puoi eseguire l'aggiornamento a 12.04, ma rimanere su una versione EOL è problematico. E il problema non si risolverà da solo ...
don.joey

5
@begueradj - modifica la tua domanda e fornisci alcuni dettagli sul tuo software. Descrivi cosa fa. Descrivi quale toolkit stai usando (ad es. GTK? QT?). Descrivi da quale software di terze parti dipende (ad esempio una versione specifica di Firefox? Webkit?). Descrivi le dipendenze del software per creare il tuo software. Senza le informazioni di cui sopra, non otterrai una risposta specifica alla tua domanda. Riceverai semplicemente una risposta generale come hai attualmente.
Fossfreedom

3
11.04 ha raggiunto la fine della vita un anno e mezzo fa .. dovresti aver aggiornato da tempo.
psusi,

Risposte:


3

Sulla base dei tuoi commenti, hai testato con successo il tuo software su VM che è una buona notizia.

Ma come sviluppatore di applicazioni devi essere pronto ad adattare il tuo codice alle versioni più recenti, altrimenti verrà rapidamente abbandonato.

Ora per assicurarmi che continuerà a funzionare con le nuove versioni di Ubuntu, ti incoraggio vivamente a mantenerlo come pacchetto e fornire una suite di test completa per la tua applicazione e chiamarla durante il processo di compilazione del pacchetto (ad esempio chiamando setup.py testnella tua debian/rules override_dh_auto_testsezione ).

Puoi impostare facilmente build giornaliere del tuo pacchetto in un ppa usando una ricetta di bzr-builder . In questo modo, riceverai una notifica di tutti gli errori di compilazione causati da nuove versioni del software o dipendenze interrotte.

Le nuove versioni sono generalmente aperte allo sviluppo pochi giorni dopo l'annuncio ufficiale della versione. Guarda la nostra pagina ppa , Utopic ora fa parte della serie di distro per cui stiamo costruendo:

inserisci qui la descrizione dell'immagine


3
Perché hai 2 risposte su questa stessa domanda? Inoltre, autopkgtest non funziona in questo modo. E in che modo questo risponde alla domanda in modo migliore o più preciso di qualsiasi altra domanda?
Dobey

Ho pubblicato una seconda risposta durante il periodo di grazia. Questa volta per concentrarsi su come prevenire i problemi di aggiornamento sperando di portare ciò che l'OP si aspettava davvero (dal momento che per il suo commento sapevo che la sua applicazione funziona correttamente con 14.04)
Sylvain Pineau,

Ti consiglio di porre un'altra domanda per inserire la tua risposta. A proposito, riparerei la parte autopgktest. @dobey ha ragione, non funziona così.
Braiam,

@dobey autopkgtest risolto / rimosso dalla mia risposta.
Sylvain Pineau,

@Braiam autopkgtest corretto / rimosso dalla mia risposta
Sylvain Pineau

13

No, non dovresti rimanere l'11.04. È il supporto di End of Life da ottobre 2012. Se si desidera un supporto, è necessario eseguire l'aggiornamento, almeno a 12.04 (che sarà supportato per altri tre anni).

Inoltre, anche le versioni più recenti di Ubuntu includono Python 3.x per impostazione predefinita, con l'obiettivo di rimuovere completamente Python 2.x dall'installazione predefinita.

Si può avere problemi con l'esecuzione il codice sotto una nuova versione di Python 3.x, ma dovrebbe, in generale, non hanno problemi. Come sviluppatore, dovresti anche essere pronto a gestire tali problemi, indipendentemente dalla versione di Ubuntu in cui ti trovi. Qualsiasi libreria che stai utilizzando, o Python stesso, potrebbe avere un bug dal quale il tuo codice dipende dal comportamento, e se quel bug è stato risolto, il tuo programma potrebbe comportarsi diversamente da come ti aspettavi prima.


11

Difficile dare una risposta definitiva senza una descrizione della domanda. Dato che stai usando Python3, almeno non sei limitato al ramo Python2.x (non ci sarà Python 2.8).

Ora alcuni avvertimenti che possono essere applicati alla tua applicazione, con Python3 molti pacchetti sono ora deprecati solo perché il modo migliore per accedere a GLib / GObject / GIO / GTK + è usare Python GObject Introspection (aka PyGI).

Infine ci sono ancora alcune differenze minori tra le diverse versioni di python3 (ad esempio Argparse non si comporta esattamente allo stesso modo con python 3.2 e 3.3.

Una cosa che potresti provare è avviare una VM 14.04 e testare il tuo codice con python3.4.


Non cambierò la mia versione di Python (è impossibile), sono più preoccupato di come una nuova versione di Ubuntu possa influenzare il codice sorgente del mio software.

Quale versione supporti ufficialmente, 3.2?
Sylvain Pineau,

Uso la versione 3.1.3

Ti incoraggio a testare la tua app con python3.2 (avviare una VM 12.04 e sudo apt-get install python3). Puoi anche controllare la nota di rilascio di python3.2 ma per quanto ne so python3.2 era solo un sacco di miglioramenti rispetto al ramo 3.1.x (argparse era uno di questi)
Sylvain Pineau

1
Per i programmi python3, le versioni aggiornate di python forniscono solo modi ancora più efficienti per eseguire attività complesse. Python3.4 per esempio, introduce asyncio e mi permetterà di sbarazzarmi di problemi di mainloop / threading glib davvero complessi. Ho messo una nota su argparse perché sono stato intrappolato nelle recenti modifiche ma non è un grosso problema. Quindi prova di nuovo il tuo sw con le versioni recenti (3.2 e 3.4 con 14.04), ma come altri rispondenti dicono che non dovresti riscontrare problemi importanti
Sylvain Pineau,

2

Dipende dal codice. Se il codice utilizza librerie non supportate, non è possibile migrare facilmente a una versione più recente di un sistema operativo, ma la maggior parte delle volte non si verificherà alcun problema.


puoi spiegarmi come mai una libreria Python dipende da una determinata versione di Ubuntu?

@begueradj Non funziona, ma se stai usando una libreria Python che non è più mantenuta, potrebbe essere stata eliminata dall'archivio Ubuntu ad un certo punto, e quindi non disponibile su una versione più recente. Il tuo codice fallirebbe quindi. Ovviamente puoi installare il pacchetto della libreria da una versione precedente di Ubuntu, o dal sorgente, per risolvere il problema, anche se non riceverai alcun aggiornamento; oppure puoi correggere il tuo codice per utilizzare una libreria diversa o scrivere il tuo codice per eseguire le stesse funzioni.
dobey

come ha detto @dobey, alcune librerie non vengono più mantenute o la sua versione più recente interrompe la compatibilità con le versioni precedenti. In passato, ho alcuni problemi con Turbogears quando eseguo l'aggiornamento alla versione più recente di Ubuntu.
Oceano

0

Ubuntu 14.04 ha pacchetti python3, quindi non è un problema. apt-cache search python3te li mostrerà. Oltre a ciò, dovrai leggere le note di rilascio per ogni versione di Ubuntu tra l'11.04 e la "versione successiva" e cercare un cambiamento che interromperà la tua applicazione. Non sapere nulla del tuo sviluppo mi impone di urlare YMMV, ma la mia ipotesi è che non avrai problemi insormontabili.


0

Se devi eseguire una vecchia versione di Python su Ubuntu 14.04, abilita il repository deadsnakes . Ha le versioni Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 per Ubuntu 14.04. Se l'applicazione è puro codice Python e non dipende dal comportamento di altri processi, dovrebbe funzionare correttamente con un vecchio interprete.


0

Come altra risposta, puoi usare l'ambiente virtuale se hai qualche problema o puoi usare la stessa versione di python su 11.04 (scaricalo e crealo) in 14.04.


Sicuramente posso testare su VM (l'ho fatto), il mio software funziona bene ... per il momento ... ma non ho idea se si verificherà un bug in seguito a causa della nuova versione di Ubuntu.

1
Poiché Ubuntu 14.04 è la versione LTS e basata sulla loro filosofia, non cambieranno versione (bomba sulla versione principale) e configurazione, penso che non si debba avere alcun problema.
Oceano,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.