web-dev-qa-db-fra.com

Comment utiliser correctement 2to3 pour python?

J'ai du code dans python 2.7 et je veux tout convertir en code python 3.3. Je sais que 2to3 peut être utilisé mais je ne sais pas exactement comment pour l'utiliser. Merci pour toute aide

31
GhostFrag1

Comme il est écrit sur 2to3 docs , pour traduire un projet entier d'une arborescence de répertoires en une autre, utilisez:

$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
41
Faruk Sahin

Si vous n'avez pas 2to3 sur votre chemin, vous pouvez appeler directement lib2to3:

python -m lib2to3 directory\file.py

Et comme les documents (et d'autres réponses) mentionnent, vous pouvez utiliser des indicateurs pour plus de personnalisation:

  • les -w drapeau pour activer l'écriture différée, qui applique les modifications au fichier
  • les -n pour désactiver les sauvegardes

(il y a quelques autres drapeaux; voir la documentation pour plus d'informations.)

8
Graham

Sous Windows:

python {path_to_python}\tools\scripts\2to3.py --output-dir={output_dir} -W -n {input_dir}

path_to_python = répertoire où Python est installé

output_dir = répertoire où sortir les scripts Python3

input_dir = répertoire d'où lire les scripts Python2

5
stzdr

Pour convertir tous les fichiers python 2 dans un répertoire en 3, vous pouvez simplement exécuter $ C:\Program Files\Python\Tools\Scripts\2to3.py -w -n. dans le répertoire que vous souhaitez traduire. Cela ignorerait tous les non .py fichiers quand même, et convertissez le reste.
note: supprimez l'indicateur -n, si vous souhaitez également le fichier de sauvegarde.

1
Nuhman