【操作】python2升級到python3


本文檔總結了針對python2升級到pyhon3的方法。

需求:現需要將一條分支的代碼從python2升級到pyrhon3。

需求拆分:為滿足升級,需做到以下:

  1.運行環境需要從python2遷移到3

  2.代碼語法需要從python2改為3(可以選擇2和3都兼容的語法)

環境遷移

  1.linux機器可以同時存在python2和python3,故先查看服務器有無python3環境(命令行直接敲python3回車),沒有的話需要下載安裝。

  2.pip下載的python2的三方包,在python3里面也需要下載。

代碼修改

  1.工具掃描

  python3提供了2to3的工具,可以將一些常見的語法(print/has_key...等)自動升級到python3,故我們先使用工具:

    (1)在終端命令行執行whereis 2to3,發現該工具在/usr/bin/2to3目錄下,ll /usr/bin/2to3,發現此路徑有一個軟連接2to3。

    (2)執行2to3 -w -n files,意思是修改但不備份原文件(2to3工具怎么使用去搜索下)

      注:此處可能會遇到編碼報錯,掃描升級失敗的問題。可以使用notepad++修改要掃描的py腳本編碼,然后重新執行命令。

      注:一個文件被掃描成功以后,不要再次掃描它,不然會導致語法出錯,比如print(())這種怪形式。

  2.手動修改

  以上兩步將py腳本里可借助工具掃描升級的語法處理了,接着是手動修改腳本涉及的語法點:

    (1)# coding=uft-8 指定編碼

    (2)#!/usr/bin/env python3 使用3的python解釋器

    (3)2里面的string模塊在3中被去掉了,故刪除。

    (4)file()->open()或with open() ps:推薦使用with open()方法

    (5)os.system()->subprocess.call()或者subprocess.run()

    (6)import中的.(相對路徑)需要改為絕對路徑

    (7)has_key->in(已被2to3工具處理)

    (8)print->print()方法(已被2to3工具處理)

    (9)字符串拼接+和+=改為{}.format()方法或者"(%s %s)" %(hi, name)或者join()

至此,python2到3的升級就完成了,可以本地調試通過后提交申請上庫。

      

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM