在 PyCharm 中将 python 2 代码转换为 3

Posted

技术标签:

【中文标题】在 PyCharm 中将 python 2 代码转换为 3【英文标题】:Convert python 2 code to 3 in PyCharm 【发布时间】:2016-10-19 20:37:47 【问题描述】:

我有一个使用 python 2 代码编写的大型 ML 项目,我刚刚开始使用 PyCharm 作为 IDE。我目前正在使用 WinPython 3.4,我最好在 python 3 中完成所有操作,而不是继续使用 legacy 2。当我从 git 克隆项目时,pycharm 中出现了一个弹出窗口,类似于将代码转换为3 from 2 但我并没有真正考虑并退出它。我该如何转换它?

【问题讨论】:

2to3.py 将转换 80% 的脚本中的 80%(大约)。 尝试python2to3.com 单个文件脚本 【参考方案1】:

python 2.X.X 转 python 3.X.X 的两种方法

    使用网络应用程序

我开发了一个 Web 应用程序来将 python 2.x.x 代码转换为 python 3.x.x。 这是Automatic Python 2 to 3 converter。

注意:这个网络应用是免费的,并且使用这个2to3 python 库。


    使用 2to3 库,阅读doc here。

安装 2to3 库

pip install 2to3 

转换 myfile.py

2to3 myfile.py 

这建议创建一个包含您的 Python 3 代码的新文件。

如果您想覆盖 myfile.py,请使用 -w 参数,例如 2to3 myfile.py -w。阅读文档以获取更多参数。

【讨论】:

【参考方案2】:

您可以使用这个免费的在线工具快速转换几个文件

https://python2to3.com/

【讨论】:

【参考方案3】:

我在 Pycharm IDE 中找到了一种使用 2to3 工具将文件从 v2 转换为 v3 的方法。

我在windows环境下申请了pycharm社区版v 2016.2.3。

点击状态栏中的终端 现在,您处于项目根目录中的 shell 命令中。 输入命令(转换 myfile.py):
2to3 myfile.py -w

工具修改文件的代码,你的 IDE 会随着修改反映出来。

要修改文件夹中的所有文件,请输入命令

2to3 . -w

选项-w 实际写入更改。 更多详情请写:

2to3 -h

【讨论】:

你需要 3to2。尝试使用 pip 或从 pycharm 中安装 3to2。 Pycharm 社区 2018.xxx 在这里。您需要单独安装 2to3。 pip install 2to3(或者至少它不在标准 venv 中)【参考方案4】:

在命令行中转到 python2script.py 所在的文件夹,

然后执行命令:

python C:/python/Tools/scripts/2to3.py -w python2script.py

您可以看到您的 python2scipt.py 已更新。

【讨论】:

【参考方案5】:

为了将您的 python 脚本从版本 2 转换为版本 3,您可以简单地使用 2to3 实用程序。

在 linux 终端上 -

$ 2to3 my_file.py              # shows output only on terminal

$ 2to3 -w my_file.py           # overwrites the file with python-3 code

其中 my_file.py 是您要转换的文件。

【讨论】:

【参考方案6】:

在任何事情之前,我都会先保存您的 Python 2 文件的备份副本。

然后,您可以尝试使用“2to3”自动化 Python 2 到 3 代码翻译工具来转换代码,该工具通过标准库内置于 Python 中。 可以在此处找到有关使用的详细信息: https://docs.python.org/2/library/2to3.html#

您还可以选择两种工具来自动移植代码:Modernize 和 Futurize。在下面查看它们。

现代化 --> https://python-modernize.readthedocs.io/en/latest/

未来化 --> http://python-future.org/automatic_conversion.html

就 Pycharm 而言,我没有看到/不知道 IDE 中有任何专门的工具可以将代码从 Python 2 转换为 Python 3。我会坚持使用上面的 3 个工具。

祝你好运!

【讨论】:

【参考方案7】:

Python 中包含一个script,通常位于[Python Root]/Tools/Scripts/2to3.py。您可以在 python 文件(或 python 文件目录)上运行该脚本,它将处理大量转换,至少对于标准库中的更改。

如果您的项目使用其他 3rd 方库,它会变得有点复杂。在 2 到 3 转换期间更改的 API 可能是 API,而2to3.py 脚本将不知道这些 API 更改。最好的办法是运行转换脚本,然后手动进行任何其他需要的更改。

【讨论】:

以上是关于在 PyCharm 中将 python 2 代码转换为 3的主要内容,如果未能解决你的问题,请参考以下文章

[转]pycharm中将ui文件转换成py文件

python基础===利用PyCharm进行Python远程调试(转)

在 PyCharm 中将文件夹标记为模板文件夹有啥影响?

转 windows下安装pycharm并连接Linux的python环境

Pycharm配置autopep8教程,让Python代码更符合pep8规范

[转]pycharm快捷键