Python2 to Python3

關(guān)于Python2還是Python3的討論依然到處可見誓琼,我們一起來看看為什么要用Python3.

為什么要用python3倔韭?

Sat Mar 10 20:54:35 EST 2018,Python之父在開發(fā)者郵箱回復(fù)說,Python2.7的EOL日期是2020年1月1日,之后不會再有任何更新例嘱,包括源碼的安全補丁。

在來看看眾所周知的Django怎么說宁舰,
Since newer versions of Python are often faster, have more features, and are better supported, the latest version of Python 3 is recommended.
大致翻譯為新版本的Python速度更快蝶防,特性更多,擁有更高的支持明吩,所以推薦最新版本的Python3.

python3的很多特性確實很棒,看這哥們整理的一份簡短的python3特性介紹

諸如Numpy等有名的第三方庫也是和Django一樣殷费,針對舊版本的Python不會再去支持印荔。

前兩年有人說因為很多第三方包不支持Python3低葫,但這個已經(jīng)是過去時,當(dāng)下活躍的第三方包都是在積極的去支持Python3.

綜上仍律,為何還不用Python3呢嘿悬?

還有一分部人是因為老項目是Python2,遷移到Python3工作量較大水泉,那接下來就是干貨時刻善涨,教你如何快速的把已有項目遷移到Python3

2to3

2to3是腳本的名稱,是隨著python解釋器一起安裝的草则。2to3 will usually be installed with the Python interpreter as a script. It is also located in the Tools/scripts directory of the Python root钢拧。

linux和mac下可以直接使用】缓幔基礎(chǔ)的用法可以點擊鏈接查看官網(wǎng)源内。

文章中介紹了幾種使用方法,我們使用文件夾轉(zhuǎn)換的方式份殿,命令如下

2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode

這個命令會遞歸的把python2-version/mycode路徑下需要做轉(zhuǎn)換的文件輸出到python3-version/mycode路徑下膜钓,如不需要轉(zhuǎn)換的不會輸出到新目錄。

本人把近2G的Flask正式項目做了一次轉(zhuǎn)換卿嘲,特別注意項目包含靜態(tài)文件颂斜,在轉(zhuǎn)換的時候要注意排除,以及env等文件夾也要繞過拾枣。
轉(zhuǎn)換過程中terminal打印的一些信息:

# has_key轉(zhuǎn)為in
@@ -405,7 +405,7 @@
 def sort_by_data(data_obj, desc=False):
     data_province = dict()
     for each_data in data_obj:
-        if data_province.has_key(each_data['name']):
+        if each_data['name'] in data_province:
             if each_data["value"] != "-":

# filter轉(zhuǎn)為列表推導(dǎo)式
         last_result = graph_last(endpoint_counters)
-        last_result = filter(lambda x: x['counter'].find('name') > -1, last_result)
+        last_result = [x for x in last_result if x['counter'].find('name') > -1]
         last_result.sort(key=lambda x: x['value']['timestamp'], reverse=True)
-        last_result = filter(lambda x: x['value']['timestamp'] == last_result[0]['value']['timestamp'], last_result)
+        last_result = [x for x in last_result if x['value']['timestamp'] == last_result[0]['value']['timestamp']]
         last_result.sort(key=lambda x: x['value']['value'], reverse=True)

# urllib路徑轉(zhuǎn)換
-import urllib
-import urllib2
-import urlparse
+import urllib.request, urllib.parse, urllib.error
+import urllib.request, urllib.error, urllib.parse
+import urllib.parse

轉(zhuǎn)換過程不過幾分鐘沃疮,但是轉(zhuǎn)換好后遇到了一些沒有轉(zhuǎn)換好的坑。從轉(zhuǎn)換開始到測試發(fā)現(xiàn)并解決這些坑為止放前,也只是一個用了1個小時時間忿磅。把坑共勉

1.python3.5和低版本的xlwt不兼容,所以有用到這個包且版本較低的話需要升級到最新凭语。目前最新的1.3.0

2.email模塊的調(diào)整

from email.mime.multipart import MIMEMultipart  # import MIMEMultipart
from email.mime.text import MIMEText  # import MIMEText
from email.mime.base import MIMEBase  # import MIMEBase
from email.encoders import encode_base64
# 發(fā)送附件時文件名
filename=('gbk', '', file_name)

3.write函數(shù)
參數(shù)必須是bytes類型

with open(dst + '/cfg.json', 'wb') as f:
    f.write(str.encode(scfg))

如后面發(fā)現(xiàn)其他坑葱她,會再次更新。

把上面的坑解決后似扔,項目就正常運行了吨些。有如此方便的神器,還有那么多新的特性炒辉,還不趕快把項目升級到python3豪墅?

人生苦短,我用python3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黔寇,一起剝皮案震驚了整個濱河市偶器,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖屏轰,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颊郎,死亡現(xiàn)場離奇詭異,居然都是意外死亡霎苗,警方通過查閱死者的電腦和手機姆吭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唁盏,“玉大人内狸,你說我怎么就攤上這事±謇蓿” “怎么了昆淡?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驴党。 經(jīng)常有香客問我瘪撇,道長,這世上最難降的妖魔是什么港庄? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任倔既,我火速辦了婚禮,結(jié)果婚禮上鹏氧,老公的妹妹穿的比我還像新娘渤涌。我一直安慰自己,他們只是感情好把还,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布实蓬。 她就那樣靜靜地躺著,像睡著了一般吊履。 火紅的嫁衣襯著肌膚如雪安皱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天艇炎,我揣著相機與錄音酌伊,去河邊找鬼。 笑死缀踪,一個胖子當(dāng)著我的面吹牛居砖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驴娃,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼奏候,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唇敞?” 一聲冷哼從身側(cè)響起蔗草,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤咒彤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蕉世,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔼紧,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年狠轻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彬犯。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡向楼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谐区,到底是詐尸還是另有隱情湖蜕,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布宋列,位于F島的核電站昭抒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炼杖。R本人自食惡果不足惜灭返,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坤邪。 院中可真熱鬧熙含,春花似錦、人聲如沸艇纺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黔衡。三九已至蚓聘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盟劫,已是汗流浹背夜牡。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工岖圈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挺尾,地道東北人冲杀。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓踏枣,卻偏偏與公主長得像霍狰,于是被迫代替她去往敵國和親泥从。 傳聞我的和親對象是個殘疾皇子葛圃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容