Ich möchte auf Python 3.5 aktualisieren, aber ich verwende Legacy Python 2.7-Pakete. Ist es einfach, Legacy-Pakete in Python 3.5 auszuführen? Ich habe den Eindruck, dass dies nicht einfach ist, aber ich habe ein paar Recherchen durchgeführt, um zu sehen, ob ich falsch liege und mir nicht viel einfallen ließ.Können wir Legacy Python 2.7-Code unter Python 3.5 ausführen?
Ich würde erwarten, dass es ein Multiprocessing-Paket gibt, das standardisierte Handoffs zwischen 3.5 Code und 2.7 Paketen erlaubt, so dass sie unabhängig in ihren eigenen Umgebungen laufen können, aber für den Entwickler etwas nahtlos sind.
Ich spreche nicht über die Konvertierung meines eigenen Codes zu 3.5, ich spreche über Bibliotheken, die ich verwende, die nicht für oder von mir aktualisiert werden.
Viele Legacy-Pakete können mit dem '2to3'-Tool, das mit python3.x ausgeliefert wird, aktualisiert werden. Das Werkzeug ist jedoch nicht zu 100% perfekt. Der beste Weg zu wissen, ob ein Paket funktioniert oder nicht, besteht darin, es auszuprobieren und zu sehen, was passiert (oder schauen Sie in der Dokumentation nach, ob es python3.x auf die eine oder andere Weise unterstützt). – mgilson
Nein, sie müssen konvertiert und ausgiebig getestet werden. Es gibt Syntaxänderungen, aber auch subtilere Probleme wie Divisionsergebnisse. Dann gibt es in C geschriebene Module, die API-Änderungen zur Kenntnis nehmen müssen und mit der Python 3-Laufzeit verknüpft werden müssen. – cdarke