67

我在 python 2.7 中有一些代码,我想将它们全部转换为 python 3.3 代码。我知道可以使用 2to3,但我不确定如何使用它。

4

9 回答 9

70

安装以下模块,将 2to3 命令直接添加到 entry_points。

pip install 2to3

正如2to3 docs所写,要将整个项目从一个目录树转换到另一个目录树,请使用:

2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
于 2013-12-08T19:39:30.663 回答
37

如果您的路径上没有2to3,您可以直接调用lib2to3

python -m lib2to3 directory\file.py

正如文档(和其他答案)所提到的,您可以使用一些标志进行更多自定义:

  • 启用写回的-w标志,它将更改应用于文件
  • 禁用-n备份

(还有一些标志;有关更多信息,请参阅文档。)

于 2018-11-23T12:47:32.373 回答
23

运行前备份很重要2to3

  1. 如果您使用的是 git,请提交。
  2. 否则,请制作文件的备份副本。

首先,在“软模式”下运行 2to3,看看它实际上会做什么:

$ 2to3 /path/to/your/project

如果您对它的功能感到满意,则可以“真正地”运行 2to3:

$ 2to3 --write --nobackups /path/to/your/project

现在你已经正确运行了2to3:)

于 2019-09-16T08:59:52.653 回答
7

在 Windows 上:

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

path_to_python= 安装 Python 的目录

output_dir= 输出 Python3 脚本的目录

input_dir= 从中读取 Python2 脚本的目录

于 2018-02-22T16:24:27.540 回答
5

要将目录中的所有 python 2 文件转换为 3,您只需$ C:\Program Files\Python\Tools\Scripts\2to3.py -w -n.在要翻译的目录中运行即可。无论如何,它会跳过所有非.py文件,并转换其余文件。
注意:如果您也想要备份文件,请删除 -n 标志。

于 2017-11-04T02:51:22.727 回答
1

运行它非常简单!我将考虑您已经安装了它并逐步解释之后如何继续:

  1. 在包含您要转换的文件的主文件夹中打开终端(或 cmd for win 用户)

例如 C:\Users\{your_username}\Desktop\python2folder

  1. 类型

python {your_2to3.py_install_directory} -w .\

例如在我的情况下(win10)它将是:

python C:"\Program Files"\Python39\Tools\scripts\2to3.py -w .\

这将使程序扫描整个目录(以及子目录)并自动将用 Python2 编写的所有内容转换为 Python3。

-w标志使脚本应用更改创建新的转换文件。所以删除这个你只想扫描并查看需要转换的内容(但实际上没有做任何事情)

如果您只想转换一个文件而不是整个文件夹,只需.\替换python2_file_name.py

例如python {your_2to3.py directory} -w python2_file_name.py

此外,默认情况下,它会为其转换的所有内容创建一个 .bak 文件。强烈建议保持这种方式,因为任何转换都容易出错,但如果您想禁用自动备份,您也可以添加-n标志。

例如python C:"\Program Files"\Python39\Tools\scripts\2to3.py -w -n python2_file_name.py

3.完成!

于 2020-11-29T05:50:59.973 回答
1

要将代码从 python2 转换为 python3,首先使用安装 2to3 包

pip install 2to3

然后在您的python代码所在的目录中运行此命令

2to3 -w -n .
  • -w 标志以启用回写,它将更改应用于文件
  • -n 禁用备份
于 2020-11-05T08:57:06.193 回答
0

首先安装python2to3包:

C:\Default> pip install 2to3

比将您的python2文件转换到python3您的新文件夹中,即python3-version/mycode

C:\Default> 2to3 your_file_name.py --output-dir=python3-version/mycode -w -n

您的新python3文件可以在新文件夹中看到,即python3-version/mycode

于 2020-05-15T10:57:39.433 回答
-2

如果您已经安装了 python,则 python 2to3.py 文件主要位于目录 C:/Program Files/Python/Tools/scripts 中。我有 python 3.6 和 2to3 在目录 C:/Program Files/Python36/Tools/scripts 中。要将某个 python 2 代码转换为 python 3,请转到您的命令提示符,将目录更改为找到 2to3 文件的 C:/Program Files/Python36/Tools/scripts。然后添加以下命令:python 2to3.py -w(脚本的目录)。

例如。C:\Program Files\Python36\Tools\scripts> python 2to3.py -w C:Users\Iykes\desktop\test.py。

此处的“-w”可确保为您的文件创建备份文件。

于 2018-01-16T09:05:19.470 回答