Frage

Ich habe ein kleines Projekt mag ich Python versuchen 3 portieren - wie gehe ich über die

?

Ich habe gemacht, den Code laufen ohne Warnungen gemacht python2.6 -3 mit (meist .has_key() Anrufe zu entfernen), aber ich bin nicht sicher, der beste Weg, um das 2to3-Tool zu verwenden.

  

Mit dem 2to3-Tool dieses Quellcode auf 3,0 Syntax konvertieren. Sie nicht manuell die Ausgabe bearbeiten!

2to3 something.py Lauf gibt einen diff, die auf seine eigenen nicht sinnvoll ist. Mit Hilfe der --write Flag something.py überschreibt und erstellt ein Backup .. Es scheint, wie ich zu tun haben ..

2to3 something.py
python3.0 something.py
mv something.py.bak something.py
vim something.py
# repeat

.., das ist ein bisschen rund-a-Kampf - idealerweise ich so etwas wie .. tun könnte

mv something.py py2.6_something.py # once

2to3 py2.6_something.py --write-file something.py
vim py2.6_something.py
# repeat
War es hilfreich?

Lösung

Aha, Sie können über die Pipeline das 2to3-Ausgang mit dem patch-Befehl, der die geänderte Datei in eine neue Datei schreiben kann:

mv something.py py2.6_something.py
2to3 py2.6_something.py | patch -o something.py

Andere Tipps

2.x sollte Ihre Code-Basis der aktiven Entwicklung sein, so 2to3 sollte wirklich in einem Zweig oder temporäres Verzeichnis ausgeführt werden. Ich bin mir nicht sicher, warum Sie die 2.x und 3.x Versionen rumliegen im gleichen Verzeichnis haben wollen würden. distutils hat einen build_2to3 Skript, das 2to3 läuft auf einem 3.0 installieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top