Sollte ich meinen Python-Code ändern, wenn ich mein Ubuntu aktualisiere?

11

Ich habe eine Software, die ich seit Jahren in Python 3 entwickle. Bis heute habe ich Ubuntu Desktop 11.04 verwendet, aber jetzt möchte ich zu einer höheren Version von Ubuntu wechseln.

Muss ich unter Ubuntu 11.04 bleiben, damit ich aufgrund neuer Änderungen in den höheren Versionen von Ubuntu keine Teile des Quellcodes meiner Software ändern muss?

Wird eine aktuelle Ubuntu-Version meine Software in keiner Weise beeinflussen?

Sylvain Pineau
quelle
18
Das ist für mich wirklich ein Kinderspiel: Update auf 14.04, wenn etwas in Ihrer Software kaputt ist: Beheben Sie es. Dies ist eine hervorragende Übung, um Software-Rot zu vermeiden. Die Art des Problems, das Sie möglicherweise finden, sind Abhängigkeiten. Sie können diese im Voraus in einer virtuellen Umgebung testen.
don.joey
6
@begueradj Ich möchte weder den Aufwand minimieren, den es erfordern wird, noch Ihre Gründe zunichte machen. Es ist nur so: Entweder Sie geben sich Mühe oder Ihre Software wird wirklich nicht mehr lange halten. Sie können ein Upgrade auf 12.04 durchführen, die Beibehaltung einer EOL-Version ist jedoch problematisch. Und das Problem wird nicht von alleine
verschwinden
5
@begueradj - Bitte bearbeiten Sie Ihre Frage und geben Sie einige Details zu Ihrer Software an. Beschreiben Sie, was es tut. Beschreiben Sie, welches Toolkit Sie verwenden (z. B. GTK? QT?). Beschreiben Sie, von welcher Software von Drittanbietern sie abhängt (z. B. eine bestimmte Version von Firefox? Webkit?). Beschreiben der Software-Abhängigkeiten zum Erstellen Ihrer Software. Ohne die obigen Informationen erhalten Sie keine spezifische Antwort auf Ihre Frage. Sie erhalten nur eine allgemeine Antwort, wie Sie sie derzeit haben.
Fossfreiheit
3
11.04 hat vor anderthalb Jahren das Lebensende erreicht. Du hättest längst ein Upgrade durchführen sollen.
Psusi

Antworten:

3

Basierend auf Ihren Kommentaren haben Sie Ihre Software erfolgreich auf VMs getestet, was eine gute Nachricht ist.

Als Anwendungsentwickler müssen Sie jedoch darauf vorbereitet sein, Ihren Code an neuere Versionen anzupassen, da er sonst schnell aufgegeben wird.

Um sicherzustellen, dass es weiterhin mit neuen Versionen von Ubuntu funktioniert, empfehle ich Ihnen dringend, es als Paket zu pflegen und eine vollständige Testsuite für Ihre Anwendung bereitzustellen und diese während des Erstellungsprozesses des Pakets aufzurufen (z. B. indem Sie setup.py testIhren debian/rules override_dh_auto_testAbschnitt aufrufen ).

Mit einem bzr-builder- Rezept können Sie ganz einfach tägliche Builds Ihres Pakets in einem ppa einrichten . Auf diese Weise werden Sie über alle Buildfehler informiert, die durch neue Softwareversionen oder fehlerhafte Abhängigkeiten verursacht werden.

Neue Releases können in der Regel einige Tage nach der offiziellen Release-Ankündigung entwickelt werden. Schauen Sie sich unsere ppa- Seite an. Utopic ist jetzt Teil der Distribution-Serie, für die wir bauen:

Geben Sie hier die Bildbeschreibung ein

Sylvain Pineau
quelle
3
Warum haben Sie 2 Antworten auf dieselbe Frage? Außerdem funktioniert der Autopkgtest nicht so. Und wie beantwortet dies die Frage tatsächlich besser oder genauer als jede andere Frage?
Dobey
Ich habe während der Kopfgeldperiode eine zweite Antwort gepostet. Dieses Mal, um sich darauf zu konzentrieren, wie Update-Probleme verhindert werden können, in der Hoffnung, das zu erreichen, was das OP wirklich erwartet hat (da ich laut seinem Kommentar wusste, dass seine Anwendung mit 14.04 korrekt funktioniert)
Sylvain Pineau
Ich empfehle Ihnen, eine andere Frage zu stellen, um Ihre Antwort dort zu platzieren. Übrigens würde ich den Autopgktest-Teil reparieren. @dobey ist richtig, es funktioniert nicht so.
Braiam
@dobey autopkgtest behoben / aus meiner Antwort entfernt.
Sylvain Pineau
@ Braiam Autopkgtest behoben / aus meiner Antwort entfernt
Sylvain Pineau
13

Nein, du solltest nicht am 11.04 bleiben. Es ist seit Oktober 2012 End of Life für Support. Wenn Sie überhaupt Support benötigen, müssen Sie mindestens auf 12.04 aktualisieren (dies wird noch drei Jahre lang unterstützt).

Auch neuere Versionen von Ubuntu enthalten standardmäßig Python 3.x mit dem Ziel, Python 2.x vollständig aus der Standardinstallation zu entfernen.

Sie können Probleme haben mit Ihrem Code unter einer neueren Version von Python 3.x ausgeführt wird , sollen aber in der Regel keine Probleme haben. Sie sollten als Entwickler auch darauf vorbereitet sein, sich mit solchen Problemen zu befassen, unabhängig davon, auf welcher Ubuntu-Version Sie sich befinden. Jede Bibliothek, die Sie verwenden, oder Python selbst, kann einen Fehler aufweisen, von dem Ihr Code verhaltensabhängig ist. Wenn dieser Fehler behoben ist, kann sich Ihr Programm anders verhalten, als Sie es zuvor erwartet hatten.

Dobey
quelle
11

Es ist schwierig, eine endgültige Antwort ohne eine Beschreibung Ihrer Bewerbung zu geben. Da Sie Python3 verwenden, sind Sie zumindest nicht auf den Python2.x-Zweig beschränkt (es wird kein Python 2.8 geben).

Nun einige Warnungen, die möglicherweise für Ihre Anwendung gelten. Mit Python3 sind viele Pakete veraltet, nur weil der beste Weg, auf GLib / GObject / GIO / GTK + zuzugreifen, die Verwendung von Python GObject Introspection (auch bekannt als PyGI) ist.

Schließlich gibt es noch einige kleine Unterschiede zwischen den verschiedenen Python3-Versionen (z. B. verhält sich Argparse mit Python 3.2 und 3.3 nicht genau gleich.

Sie können versuchen, eine 14.04-VM zu starten und Ihren Code mit python3.4 zu testen.

Sylvain Pineau
quelle
Ich werde meine Python-Version nicht ändern (es ist unmöglich). Ich bin eher besorgt darüber, wie sich eine neue Ubuntu-Version auf den Quellcode meiner Software auswirken könnte.
Welche Version unterstützen Sie offiziell, 3.2?
Sylvain Pineau
Ich benutze die Version 3.1.3
Ich würde Sie ermutigen, Ihre App mit Python3.2 zu testen (starten Sie eine 12.04 VM und sudo apt-get install python3). Sie können auch die überprüfen Release-Info von python3.2 aber soweit ich weiß , python3.2 waren nur Tonnen von Verbesserungen gegenüber dem 3.1.x Zweig (war argparse einer von ihnen)
Sylvain Pineau
1
Für Python3-Programme bieten aktualisierte Python-Versionen nur noch effizientere Möglichkeiten für komplexe Aufgaben. Python3.4 führt zum Beispiel Asyncio ein und ermöglicht es mir, wirklich komplexe Probleme mit dem Glib-Mainloop / Threading zu beseitigen. Ich habe eine Notiz über Argparse gemacht, weil ich in den letzten Änderungen gefangen war, aber es ist keine große Sache. Testen Sie Ihren SW also erneut mit den neuesten Versionen (3.2, dann 3.4 mit 14.04), aber wie andere Antwortende sagen Sie, dass Sie keine größeren Probleme haben sollten
Sylvain Pineau,
2

Dies hängt von Ihrem Code ab. Wenn Ihr Code Bibliotheken verwendet, die nicht unterstützt werden, können Sie nicht einfach auf eine neuere Version eines Betriebssystems migrieren, aber meistens tritt kein Problem auf.

Ozean
quelle
Können Sie mir erklären, warum eine Python-Bibliothek von einer bestimmten Ubuntu-Version abhängt?
@begueradj Dies ist nicht der Fall, aber wenn Sie eine Python-Bibliothek verwenden, die nicht mehr verwaltet wird, wurde sie möglicherweise irgendwann aus dem Ubuntu-Archiv entfernt und ist daher in einer neueren Version nicht verfügbar. Ihr Code würde dann fehlschlagen. Sie können das Bibliothekspaket natürlich von einer älteren Version von Ubuntu oder von der Quelle aus installieren, um das Problem zu beheben, obwohl Sie keine Updates dafür erhalten. oder Sie können Ihren Code so reparieren, dass er eine andere Bibliothek verwendet, oder Ihren eigenen Code schreiben, um dieselben Funktionen auszuführen.
Dobey
Wie @dobey sagte, werden einige Bibliotheken nicht mehr gewartet oder die neuere Version unterbricht die Abwärtskompatibilität. In der Vergangenheit habe ich einige Probleme mit Turbogears, wenn ich auf eine neuere Version von Ubuntu aktualisiere.
Ozean
0

Ubuntu 14.04 hat Python3-Pakete, das ist also kein Problem. apt-cache search python3werde sie dir zeigen. Darüber hinaus müssen Sie die Versionshinweise für jede Ubuntu-Version zwischen 11.04 und der "höheren Version" lesen und nach einer Änderung suchen, die Ihre Anwendung beschädigt. Wenn ich nichts über Ihre Entwicklung weiß, muss ich YMMV rufen, aber ich vermute, dass Sie keine unüberwindlichen Probleme haben werden.

Walzer
quelle
0

Wenn Sie eine alte Version von Python unter Ubuntu 14.04 ausführen müssen, aktivieren Sie das Deadsnakes- Repository. Es hat Python-Versionen 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 für Ubuntu 14.04. Wenn Ihre Anwendung reiner Python-Code ist und nicht vom Verhalten anderer Prozesse abhängt, sollte sie unter einem alten Interpreter einwandfrei funktionieren.

bain
quelle
0

Als weitere Antwort können Sie die virtuelle Umgebung verwenden, wenn Sie ein Problem haben, oder Sie können dieselbe Version von Python unter 11.04 (herunterladen und erstellen) in 14.04 verwenden.

Ozean
quelle
Sicherlich kann ich auf VMs testen (ich habe es getan), meine Software funktioniert gut ... im Moment ... aber ich habe keine Ahnung, ob sie später aufgrund der neuen Ubuntu-Version fehlerhaft sein wird.
1
Da Ubuntu 14.04 eine LTS-Version ist und auf ihrer Philosophie basiert, werden sie die Version (Bombe auf Hauptversion) und die Konfiguration nicht ändern. Ich denke, Sie müssen kein Problem haben.
Ozean