Upgrade von Python 2.7 auf 3.10 auf Mac

Probleme bei der Installation?
Antworten
Carlo
User
Beiträge: 1
Registriert: Dienstag 15. Februar 2022, 17:08

Hallo und guten Tag,
bin neu in diesem Forum und dankbar für Hinweise / Hilfe zum Upgrade.
Der Anlass: Hinweise, daß 2.7 bald nicht mehr unterstützt wird und nicht verträglich ist mit zukünftigen iOS-Releases.
Mein Background: ganz passabler Python-Programmierer mit IDE = PYCHARM, habe aber wenig Ahnung vom Hintergrund, z.B. Umgang mit PIP, Einbettung von Ergänzungen wie Openpyxl, Verbindung von Python mit Pycharm.
Mein Problem: die verschiedenen Quellen im Internet zum obigen Thema vermitteln mir: manche Anwendungen laufen dann nicht mehr, der Umstieg ist kompliziert, ich weiß zu wenig über die Zusammenhänge, es gibt keine professionelle Unterstützung zum Umstieg, weder von Python noch von Pycharm.
Sollte ich jetzt den Umstieg forcieren?
Wenn ja: wie und mit welchen Hilfestellungen?
Gibt es jemanden bei euch, der schon Erfahrung mit einem Umstieg hat?
Bin dankbar für jeden Hinweis.
Sollte ich im falschen Forum gelandet sein, sagt es mir und seht es mir nach.

Carlo
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Python 2.7 ist schon eine ganze Weile nicht mehr unterstützt. Für dem Umstieg gibt es etliche Seiten, und kompliziert ist das im normallfall auch nicht, sondern nur je nach Umfang der Programme etwas aufwändig.
Für gibt es etliche Pakete. 2to3 wird gar mit Python mitgeliefert. Dann gibt es noch Zeugs wie futurize. Am besten liest Du Dir mal die Dokumentation zum Thema durch. Schaust, dass die Testabdeckung deines Codes sehr gut ist, fängst dann mit der Aufspaltung in byte und unicode-Strings an, benutzt __future__-Importe, vor allem Integer und float-Division, achtest auf zip, map, filter und die anderen Eingebauten Funktionen, die sich geändert haben. Wenn Du modernes Python 2.7 Programme hast, dann ist der Umstieg so gut wie durch.
Was für einkonkretes Problem hast Du denn?
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Sollte ich jetzt den Umstieg forcieren?
Ja - hättest du schon vor Jahren machen sollen. Ab Python 3.4 lief IMHO Python 3 komplett rund und man konnte problemlos mit Python 3 arbeiten. Der Release von Python 3.4 war am 16.3.2014.
Gibt es jemanden bei euch, der schon Erfahrung mit einem Umstieg hat?
Vermutlich... alle hier im Forum?
es gibt keine professionelle Unterstützung zum Umstieg
Was heißt denn "professionelle Unterstützung"? Ein paar Sachen hat Sirius3 schon aufgezählt. 2to3 kam / kommt direkt von den Python-Entwicklern.

Im Idealfall läuft dein Code ohne Änderungen unter P3. Je länger / komplexer das Programm ist desto unwahrscheinlicher ist das. Wenn dein Code keine Testabdeckung hat und nicht komplex ist kannst du das auch Trial & Error machen: P2 Code unter P3 ausführen und eine Fehler nach dem anderen fixen. Kann aber mühselig sein und du findest so ggf. keine Inkompatibilitäten, die nur unter bestimmten Bedingungen auftreten.

Du darfst dir halt nicht selber im Weg stehen und dir vorab sagen / einreden, dass das alles so kompliziert ist und du das nicht blickst. ist es nämlich nicht :-)

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich würde nicht ganz so weit zurück gehen, denn es gab *sehr viele*, auch professionelle Anwender die erst sehr spät auf Python 3 umgestiegen sind. Der wirkliche Druck umsteigen zu müssen kam erst sehr spät.

Es gibt mehrere Dokumente da draussen die beim Umstieg helfen. Unter anderem AFAIK auch was von Red Hat wo die deren Erfahrung mit Portierungen haben einfliessen lassen. Dann die Dokumentation(en) von Python selbst, und den Modulen `futurize` und `six`. Auch wenn man diese Module nicht verwenden möchte, lohnt sich ein Blick darauf was die leisten, weil man dann auch weiss was man selbst, ohne diese Module machen muss. Ich selbst habe `six` benutzt um Code/Unittests im ersten Schritt unter Python 2.7 und Python 3.6+ laufen zu lassen, bevor dann 2.7 raus fliegt. Das kommt ein bisschen darauf an wie gross die jeweilige Codebasis ist, und ob man da einen fliessenden Übergang machen möchte, also während man portiert auch am Projekt selbst noch weiterbauen muss/will.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Gegenwärtig sieht es so aus, als würde 2to3 mit dem nächsten Python Release 3.11 für deprecated erklärt und in der übernächsten Version 3.13 dann entfernt. Damit rollt der Zug dann auch ganz langsam los. Es wird zwar noch einige Jahre dauern, bis das in keiner offiziell mehr unterstützen Version enthalten ist. Aber das heißt, wenn das zum Einsatz kommen soll, hat man da auch nicht mehr endlos Zeit.
Antworten