Pergunta

Eu tenho um pequeno projeto que eu quero tentar portar para Python 3 - como faço para ir sobre este

?

Eu fiz fez a executar o código sem avisos usando python2.6 -3 (principalmente a remoção de chamadas .has_key()), mas eu não tenho certeza a melhor maneira de usar a ferramenta 2to3.

Use a ferramenta 2to3 para converter este código-fonte para 3,0 sintaxe. Não edite manualmente a saída!

Running 2to3 something.py gera um diff, o que não é útil, por si própria. Usando o --write substitui bandeira something.py e cria um backup .. Parece que eu tenho que fazer ..

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

.. que é um round-a-bout bit - Idealmente, eu poderia fazer algo assim ..

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

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

Solução

Aha, você pode canalizar a saída 2to3 para o comando patch, que pode escrever o arquivo modificado para um novo arquivo:

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

Outras dicas

2.x deve ser a sua base de código de desenvolvimento ativo, então 2to3 deve realmente ser executado em um ramo ou diretório temporário. Eu não tenho certeza por que você gostaria de ter a 2.xe 3.x versões espalhadas no mesmo diretório. distutils tem um script build_2to3 que será executado 2to3 em um 3.0 instalar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top