由於python存在python2和python3兩個主要的版本方向,經常會有將python2的代碼轉到python3的環境下運行的需求。尤其是跑一些神經網絡的代碼時有很多是在python2的環境下寫的。在python3下運行會遇見很多不兼容,最常見的就是python3中print函數必須加()而python2中不是。一個一個修改這種錯誤又非常麻煩。
此時一種方式是再安裝一個python2,比如下載anaconda對應的python2的版本,管理相關的庫,運行的時候指定python2運行。不過如果是運行依賴比較多的代碼可能需要在python2的環境安裝許多包。
這里介紹一個python3自帶的腳本2to3.py,可以將python2的程序自動轉為python3的形式,節省了很多修改細節的時間。這個腳本在Python安裝目錄下Toolsscripts文件夾下,如果是利用anaconda3安裝的python3,就在anaconda3/Tools/scripts中,如下圖:
這個文件實際是可以復制到電腦任何位置使用的,當然也可以就在這個位置利用cmd使用,里面的代碼也很簡單,只有幾行:
使用方法也很簡單,如果我需要轉換某個python文件,比如E盤根目錄下的test.py,只需要在命令行里輸入
python 2to3.py -w E:/test.py
如果需要轉換某個文件夾下的所有文件,例如E盤test文件夾下的所有文件,只需要在命令行里輸入
python 2to3.py -w E:/test/
就是這么簡單就可以完成python2代碼像python3代碼的變換,當然目前對於一些比較復雜的依賴這種方法還不能完全轉換,還需要根據運行錯誤調整,不過已經可以節省很多的時間啦。