由于python存在python2和python3兩個(gè)主要的版本方向稍坯,經(jīng)常會(huì)有將python2的代碼轉(zhuǎn)到python3的環(huán)境下運(yùn)行的需求恩静。尤其是跑一些神經(jīng)網(wǎng)絡(luò)的代碼時(shí)有很多是在python2的環(huán)境下寫的。在python3下運(yùn)行會(huì)遇見(jiàn)很多不兼容蝌蹂,最常見(jiàn)的就是python3中print函數(shù)必須加()而python2中不是款慨。一個(gè)一個(gè)修改這種錯(cuò)誤又非常麻煩胖烛。
此時(shí)一種方式是再安裝一個(gè)python2挫以,比如下載anaconda對(duì)應(yīng)的python2的版本者蠕,管理相關(guān)的庫(kù),運(yùn)行的時(shí)候指定python2運(yùn)行掐松。不過(guò)如果是運(yùn)行依賴比較多的代碼可能需要在python2的環(huán)境安裝許多包踱侣。
這里介紹一個(gè)python3自帶的腳本2to3.py,可以將python2的程序自動(dòng)轉(zhuǎn)為python3的形式大磺,節(jié)省了很多修改細(xì)節(jié)的時(shí)間抡句。這個(gè)腳本在Python安裝目錄下Tools\scripts文件夾下,如果是利用anaconda3安裝的python3杠愧,就在anaconda3/Tools/scripts中待榔,如下圖:
這個(gè)文件實(shí)際是可以復(fù)制到電腦任何位置使用的,當(dāng)然也可以就在這個(gè)位置利用cmd使用流济,里面的代碼也很簡(jiǎn)單锐锣,只有幾行:
使用方法也很簡(jiǎn)單,如果我需要轉(zhuǎn)換某個(gè)python文件袭灯,比如E盤根目錄下的test.py刺下,只需要在命令行里輸入
python 2to3.py -w E:/test.py
如果需要轉(zhuǎn)換某個(gè)文件夾下的所有文件绑嘹,例如E盤test文件夾下的所有文件稽荧,只需要在命令行里輸入
python 2to3.py -w E:/test/
就是這么簡(jiǎn)單就可以完成python2代碼像python3代碼的變換,當(dāng)然目前對(duì)于一些比較復(fù)雜的依賴這種方法還不能完全轉(zhuǎn)換工腋,還需要根據(jù)運(yùn)行錯(cuò)誤調(diào)整姨丈,不過(guò)已經(jīng)可以節(jié)省很多的時(shí)間啦。