我在 python 2.7中有一些代码,我想把它们全部转换成 python 3.3代码。我知道2to3可以使用,但我不确定如何使用它。
安装以下模块,将2to3命令直接添加到 entry _ points。
pip install 2to3
在 2到3个医生上编写时,要将整个项目从一个目录树转换为另一个目录树,请使用:
2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
要将目录中的所有 python2文件转换为3,只需在要翻译的目录中运行 $ C:\Program Files\Python\Tools\Scripts\2to3.py -w -n.。它会跳过所有的非 .py文件,无论如何,并转换其余。 注意 : 如果您也想要备份文件,请删除-n 标志。
$ C:\Program Files\Python\Tools\Scripts\2to3.py -w -n.
.py
如果您已经安装了 Python,那么 Python 2to3.py 文件主要位于目录 C:/Program Files/Python/Tools/script 中。我有 python 3.6,2to3在目录 C:/Program Files/Python 36/Tools/script 中。 要将某个 python2代码转换为 python3,请转到命令提示符,将目录更改为 C:/Program Files/Python36/Tools/script,其中可以找到2to3文件。然后添加以下命令: Python 2to3.py-w (脚本目录)。
C: Program Files Python 36 Tools script > python 2to3.py-w C: Users Iykes 桌面 test.py。
这里的’-w’确保为您的文件创建了一个备份文件。
在 Windows 上:
python {path_to_python}\tools\scripts\2to3.py --output-dir={output_dir} -W -n {input_dir}
path_to_python = 安装 Python 的目录
path_to_python
output_dir = 输出 Python 3脚本的目录
output_dir
input_dir = 从哪里读取 Python 2脚本的目录
input_dir
如果路径上没有 2to3,可以直接调用 lib2to3:
2to3
lib2to3
python -m lib2to3 directory\file.py
正如 那些文件(和其他答案)提到的,您可以使用一些标志进行更多的定制:
-w
-n
(还有一些标志; 请参阅文档了解更多信息。)
在运行 2to3之前有一个备份是很重要的。 如果您使用 git,请做出承诺。 否则,请备份您的文件。
在运行 2to3之前有一个备份是很重要的。
首先,在“软模式”下运行2to3,看看它实际上会做什么:
$ 2to3 /path/to/your/project
如果你对它的功能感到满意,那么你可以“真正地”运行2到3次:
$ 2to3 --write --nobackups /path/to/your/project
现在您已经正确地运行了 2to3:)
首次安装 python 2to3软件包:
C:\Default> pip install 2to3
然后将您的 python2文件转换为新文件夹中的 python3,即 python3-version/mycode
python2
python3
python3-version/mycode
C:\Default> 2to3 your_file_name.py --output-dir=python3-version/mycode -w -n
您的新 python3文件可以看到在新的文件夹,即 python3-version/mycode
要将 python2的代码转换为 python3,首先使用
然后在 Python 代码所在的目录中运行此命令
2to3 -w -n .
运行它是非常简单的!我会考虑你已经安装了它,并逐步解释如何继续下去:
例如:。 C:\Users\{your_username}\Desktop\python2folder
C:\Users\{your_username}\Desktop\python2folder
python {your_2to3.py_install_directory} -w .\
例如,在我的情况下(win10) :
python C:"\Program Files"\Python39\Tools\scripts\2to3.py -w .\
这将使程序扫描整个目录(以及子目录) ,并自动将 Python 2中编写的所有内容转换为 Python 3。
-w标志使脚本应用创建新的转换文件的更改。因此,删除这个你想只是扫描,看看什么需要转换(但没有实际做任何事情)
如果你只想转换一个文件而不是整个文件夹,只需用 .\代替 python2_file_name.py:
.\
python2_file_name.py
例如 python {your_2to3.py directory} -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
python C:"\Program Files"\Python39\Tools\scripts\2to3.py -w -n python2_file_name.py
3. 完成!