几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下。为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式。
通过参考使用python3自带工具2to3.py 转换 python2.x 代码 到python3这篇博客介绍的Windows下转换python2代码到python3的方法,我研究了一下在macOS下的转换方法。
由于不同系统下的文件路径是不同的,我只好就按照文件名进行了搜索,得到以下内容:
发现有两个2to3-3.6文件,看了一下路径觉得在
/Users/xjx/anaconda/bin
路径下的比较靠谱
于是在终端打开
$ cd /Users/xjx/anaconda/pkgs/python-3.6.1-2/bin
$ python 2to3-3.6
可以看见在python 2to3.py 后面是需要参数的
At least one file or directory argument required.
Use --help to show usage.
输入–help 可以看到所需的参数信息
2to3.py 脚本可以单独转换python2代码到python3,也可以按照目录批量的转换
- 按目录转换
$ python 2to3-3.6 -w /Users/xjx/Downloads/a/
- 按指定代码转换
$ python 2to3-3.6 -w /Users/xjx/Downloads/a.py
转换过程中会显示一些转换细节
出现如下提示时转换成功
RefactoringTool: Files that were modified:
RefactoringTool: /Users/xjx/Downloads/a.py
可以看到,转化后的python3代码替换了原来的a.py,而原来的python2代码被保存为同目录下的a.py.bak