我的配置
window10系统
python3.6版本
需求:
有时候在GitHub上下载一些项目时,人家用的是python2写的,和自己电脑安装的是python3.6,有时候一个项目很大py文件,这个时候一个一个文件改,耗时费力,如果在安装配置python2环境,也可行,但是也很费精力,而且有些更新的模块功能不支持python2的环境,也不少。所以就网上搜到还真有python2转换成python3的模块,然后自己再根据调试着,剩下的慢慢改,剩下不少精力和时间(对比一个一个改py文件)
解决方法:
1、安装模块:
pip install 2to3
模块地址:
https://pypi.org/project/2to3/
2、使用模块更改一个py文件(后缀不是py也可以)
这个命令有点缺陷,就是每次只能改一个,但是却不错:
安装好直接在cmd中或者powershell,test_ci.py是需要更改的py文件
2to3 -w .\test_ci.py
更改之后,会生成一个test_ci.py.bak,就是原来的文件名加上.bak的文件就是更改前的python2文件,test_ci.py文件变成了想要的python3文件

3、更改一个项目
命令:
2to3 –output-dir=python3 -W -n DeepVideoAnalytics-master
解释:
- python3 是改成之后的python3文件夹,可以不存在,之后会自动生成这个目录。
- DeepVideoAnalytics-master 这个是需要更改的python2项目
注意点:
这里更改的只是后缀为py的文件,不是py后缀好像不会更改过来。

更改过后的目录:

4、项目同意更改为python3解决思路
根据上面步骤3之后,可以进行以下操作:
1、既然这些更改成功了,我直接全部复制到原来的目录下,

然后复制到第一层目录下,选择替换全部
复制替换成功

验证猜想,果然没有py文件:


2、单独转换剩余不是py后缀的python文件(大多数项目都是py后缀就忽略这一步)
然后还有个别不是py后缀的文件,单独使用命令更改一个一个文件(这种文件不会太多,一般就是目录第一层的文件(不是目录下的文件)中才有)

1、验证是否含有不是py后缀的python文件,pycharm打开项目,进入第一层一看就知道了。

2、单独转换:
复制出来:

转换第一个python文件

转换第二个python文件


复制替换原来的python2文件

3、初步转换成功,剩下自己调试吧(和此项目无关,我也是随便找的一个python2项目)

参考:
https://pypi.org/project/2to3/
https://docs.python.org/zh-cn/3.7/library/2to3.html