Pregunta

Tengo un pequeño proyecto que quiero probar la migración a Python 3 - ¿cómo puedo ir sobre esto

?

He hecho hizo que la ejecución de códigos sin advertencias utilizando python2.6 -3 (eliminación de la mayoría de las llamadas .has_key()), pero no estoy seguro de la mejor manera de utilizar la herramienta 2to3.

  

Utilice la herramienta de 2to3 para convertir el código fuente a la sintaxis 3.0. No edite manualmente la salida!

Running 2to3 something.py da salida a un diff, que no es útil por sí mismo. Usando la bandera --write sobrescribe something.py y crea una copia de seguridad .. Parece como si tuviera que hacer ..

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

.. que es un poco de ida y una pelea - idealmente podría hacer algo como ..

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

2to3 py2.6_something.py --write-file something.py
vim py2.6_something.py
# repeat
¿Fue útil?

Solución

Aha, se puede canalizar la salida 2to3 al comando patch, que puede escribir el archivo modificado a un nuevo archivo:

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

Otros consejos

2.x debe ser su base de código de desarrollo activo, por lo 2to3 realmente debe funcionar en una rama o un directorio temporal. No estoy seguro de por qué te gustaría tener las versiones 2.xy 3.x por ahí en el mismo directorio. distutils tiene un script que se ejecutará build_2to3 2to3 en un 3,0 instalación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top