儘管如今有不少項目基於python2開發,但愈來愈多的項目以python3開發,並且愈來愈多的包開始不支持python2,就拿ubuntu系列版原本說,ubuntu20.04源庫沒有python-pip,或者作web開發的django框架3.0來講,直接python3,但項目確定不可能直接重寫,幸運的是無論win系統仍是linux下都提供了對應的版本轉換工具,只需簡單執行相關命令,便可完成python2轉python3。python
在咱們安裝的python文件目錄下,最好在官網下載zip包,解壓後放置任何位置,同時設置環境變量,保證在命令行下運行python能夠運行,固然嫌麻煩也能夠下載那種一路next的版本,環境變量默認幫你設置好的。linux
假定上述工做你已完成的狀況下,接下來打開python的安裝目錄,好比如下是我本身的目錄及文件:web
注意2to3.py
,經過此文件就能夠完成版本轉換,下面是使用實例。django
# 查看哪些是須要更改的 python 2to3.py test.py # py2轉py3 python 2to3.py -w test.py # 批量轉換或查看更改部分 python 2to3.py [-w] ./
在ubuntu下,直接有這樣一個二進制的命令2to3
,能夠直接運行這個命令更改相關代碼。ubuntu
# 查看命令 root@ubuntu:~# ls -l /usr/bin/ | grep 2to3 -rwxr-xr-x 1 root root 96 Feb 27 23:10 2to3-2.7 # 查看幫助 root@ubuntu:~# 2to3-2.7 --help Usage: 2to3 [options] file|dir ... Options: -h, --help show this help message and exit -d, --doctests_only Fix up doctests only -f FIX, --fix=FIX Each FIX specifies a transformation; default: all -j PROCESSES, --processes=PROCESSES Run 2to3 concurrently -x NOFIX, --nofix=NOFIX Prevent a transformation from being run -l, --list-fixes List available transformations -p, --print-function Modify the grammar so that print() is a function -v, --verbose More verbose logging --no-diffs Don't show diffs of the refactoring -w, --write Write back modified files # 使用後,後將文件轉換python3,同時多出後綴.bak的備份文件,python2版本 -n, --nobackups Don't write backups for modified files -o OUTPUT_DIR, --output-dir=OUTPUT_DIR Put output files in this directory instead of overwriting the input files. Requires -n. -W, --write-unchanged-files Also write files even if no changes were required (useful with --output-dir); implies -w. --add-suffix=ADD_SUFFIX Append this string to all output filenames. Requires -n if non-empty. ex: --add-suffix='3' will generate .py3 files. # 查看須要更改處 root@ubuntu:~/test2to3# 2to3-2.7 pkg/p_demo.py.bak RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Refactored pkg/p_demo.py.bak --- pkg/p_demo.py.bak (original) +++ pkg/p_demo.py.bak (refactored) @@ -1,2 +1,2 @@ #!/usr/bin/python -print "p_demo file" +print("p_demo file") RefactoringTool: Files that need to be modified: RefactoringTool: pkg/p_demo.py.bak # py2 -> py3 root@ubuntu:~/test2to3# 2to3-2.7 pkg/p_demo.py.bak -w RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Refactored pkg/p_demo.py.bak --- pkg/p_demo.py.bak (original) +++ pkg/p_demo.py.bak (refactored) @@ -1,2 +1,2 @@ #!/usr/bin/python -print "p_demo file" +print("p_demo file") RefactoringTool: Files that were modified: RefactoringTool: pkg/p_demo.py.bak # 也能夠直接對目錄進行操做 root@ubuntu:~/test2to3# 2to3-2.7 [-w] ./ RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: No changes to ./pkg/p_demo.py RefactoringTool: No changes to ./proj/pro_demo2.py RefactoringTool: No changes to ./tools/t_demo3.py RefactoringTool: Files that need to be modified: RefactoringTool: ./pkg/p_demo.py RefactoringTool: ./proj/pro_demo2.py RefactoringTool: ./tools/t_demo3.py
以上是不一樣系統下使用2to3工具轉換python版本,但願對你有用。windows