Menü

Migration auf Python 3: Der Teufel steckt im Detail

Einem Report von ActiveState zufolge sind die meisten Anwender gut auf das EOL von Python 2 vorbereitet – einige stehen aber vor hohen Hürden.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 107 Beiträge

(Bild: Michael Schwarzenberger, gemeinfrei (Creative Commons CC0))

Von

Nachdem die Python Software Foundation End of Life für Python 2 zum Jahreswechsel endgültig vollzogen hat, stehen angesichts des auslaufenden Supports nun auch die verbliebenen Anwender vor der Aufgabe, zu Python 3.x zu migrieren. ActiveState, der Anbieter hinter der Python-Distribution ActivePython, kommt in einer unter rund 1250 Nutzern durchgeführten Umfrage zu der Einschätzung, dass viele der betroffenen Unternehmen bereits eine konkrete Migrationsstrategie umsetzen, für einige steckt der Teufel dabei jedoch im Detail.

Die Hälfte der Befragten sieht sich ausreichend auf die Migration vorbereitet, knapp ein Drittel hingegen gibt an, sich noch nicht präpariert zu haben. Eine Mehrheit von knapp zwei Drittel der Unternehmen verfolgt das Ziel, ihre alten Python-2-Applikationen zu Python 3 zu übertragen. Weniger als 10 Prozent der Umfrageteilnehmer wollen ihre Anwendungen hingegen in einer anderen Programmiersprache neu schreiben oder durch eine komplett neue Applikation ablösen.

Bei den konkret zu erwartenden Herausforderungen bei der Migration auf Python 3 sind sich die befragten Entwickler mehrheitlich einig: Über die Hälfte befürchtet, keine Python-3-Packages zu finden, die ihnen den gleichen Funktionsumfang bieten wie die bisher genutzten Python-2-Packages. Obwohl der größte Teil der häufig verwendeten Packages bereits in einer für Python 3 angepassten Version vorliegen, bereiten einige wenige, spezielle Packages den Umfrageteilnehmern offenbar Kopfzerbrechen – darunter insbesondere Mingwpy, Autodesk Maya und Robot/Jython.

Herausforderungen bei der Migration auf Python 3

(Bild: ActiveState)

Während das Testframework Robot bereits kompatibel mit Python 3 ist, fehlt dem von einigen Unternehmen im Rahmen von Tests noch eingesetzten JVM-Package Robot/Jython diese Portierung weiterhin. Autodesk hat für seine 3D-Rendering und -Grafikanwendung Maya zwar ein Upgrade angekündigt, ein konkreter Termin für die Veröffentlichung einer Python-3-Version liegt aber noch nicht vor. Kaum Hoffnung auf ein Update können sich hingegen Nutzer der Mingwpy Tools machen – das auf Entwickeln von Python Extensions für Windows ausgelegte Projekt wurde 2017 eingestellt. Die bis dahin veröffentlichten Builds für Python 2.7 und 3.4 sind nicht über den Status experimentell hinausgekommen.

Mehr zum Thema auf der enterPy 2020

Vom 25. bis 26. Mai 2020 veranstalten heise Developer, iX und der dpunkt.verlag die enterPy – die neue Konferenz für Python in Business, Web und DevOps.

Im Rahmen eines Call for Proposals (CfP) suchen die Veranstalter Workshop- und Vortragseinreichungen zu den wichtigsten Themenbereichen von den Python-Grundlagen über Deep Dives, Frameworks und Tools, Web, DevOps, Security und Testing bis hin zu Data Science und Machine Learning.

mehr anzeigen

Neben der Suche nach angepassten Packages sehen die migrationswilligen Unternehmen weitere Herausforderungen im Hinblick auf Testen (40%) sowie bei der Code-Übertragung von Python 2 auf Python 3 (37%). Weniger gravierend erscheint den Betroffenen hingegen, die Erwartungen ihrer Kunden (18%) auch über den Migrationsprozess hinaus erfüllen und die notwendigen Ressourcen für die erforderlichen Arbeiten bereitstellen zu können (1%).

Ein Viertel der Unternehmen, die sich fortan selbst um den Support noch genutzter Python-2-Anwendungen kümmern, rechnet gar nicht mit Schwierigkeiten. Die Mehrheit hingegen befürchtet Probleme mit Schwachstellen in Drittanbieter-Packages sowie beim Bug Fixing. Darüber hinaus bereiten vielen Umfrageteilnehmern auch potenzielle Schwachstellen im Python-2-Core Sorgen.

Die von ActiveState im Oktober und November 2019 durchgeführte Umfrage steht auf der Website des Anbieters öffentlich zur Verfügung.

Siehe hierzu auf heise Developer:

(map)