由于历史原因, 尽管官方不再在python2 上做更新,但是还是有很多项目都是基于python2上做的开发和维护。
这样将这些项目尽快通过python2 转化到python3。 然后享受python3 带来的便利呢。办法还是有的,就是用 python 2to3 工具。
这个工具怎么使用,可以输入help进行阅读帮助文档。
这里篇幅不够,我们来看看python的命令项目怎么折腾的 ^-^。
$ which 2to3
~/anaconda3/bin/2to3
看到命令位置后,查看该文件:
#!~/anaconda3/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from cmd_2to3.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
这个命令绕呀,我们看到 cmd_2to3 这个库。
$ ipython
Python 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 09:07:38)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import cmd_2to3
In [2]: cmd_2to3.__file__
Out[2]: '~/anaconda3/lib/python3.6/site-packages/cmd_2to3/__init__.py'
In [3]: import lib2to3
In [4]: lib2to3.__file__
Out[4]: '~/anaconda3/lib/python3.6/lib2to3/__init__.py'
In [5]:
在上面,我们看到cmd_2to3 的文件位置,查看内容,又跳到 lib2to3 项目上。
对的,这就是真正的项目所在。
这就是目录结构,其中 fixes 中就是各种语法修改的部分,这里不做详细的讲解。
希望对大家有所益。