2009-10-31 109 views
3

我有一個用Python 2.5編寫的Django應用程序,我打算將其升級到與Python 2.6兼容。它包含數百個.py文件。有沒有簡單的方法來查找這些文件中的所有棄用函數?Python不推薦使用的函數

回答

5

我不確定在從Python 2.5升級到Python 2.6時,「不推薦使用的函數」是什麼意思。

發行說明非常具體。 http://docs.python.org/whatsnew/2.6.html

沒有棄用的功能。幾個完整的模塊被棄用,並且Exception類的一個屬性。

您有GREP(或FIND),並且您有PYTHON,您可以使用它來搜索100個Python源文件。

當我們從2.5改變到2.6時,我們對棄用的函數沒有任何問題。

棄用的手段「仍然有效」。

我們剛好有一個棄用的模塊,它在我們的單元測試期間通過警告消息被報告。我們只需閱讀棄用消息的日誌並替換模塊。 (順便提一句,是md5。)最後,我們爲md5的所有用途做了GREP並取代了它們。

0

我認爲Python 2.5的應用程序應該在沒有更新的2.6下正常工作。 2.6可能會抱怨一些不推薦使用的功能,但這些功能只能在3.0版本中移除,並且仍然可以在2.6版本中使用。

+0

是的,它在Python 2.6中工作正常。我只想找出所有被棄用的功能,並使其符合新版本。而且我也會知道在新代碼中要避免哪些庫或函數。 – jack 2009-10-31 08:25:40

5

在Python的點釋放之間(比如在2.5和2.6之間),任何可能中斷的東西都是至少一個版本的警告。大多數棄用警告是默認發出的,但是您可以使用-W解釋器調用選項對發出的警告進行細化控制。

這是一個相對較小的問題,因爲它們明確意圖向後兼容。 Python 2.x和3.0之間有一個更大的變化,其中包括一些特殊用途的工具,包括顯示與Python 3.0相關的棄用警告的-3解釋器調用選項。

0

真正的交易是從2.6遷移到3.0。如果你想知道有關它的一切,有一個非常好的演講爲:

http://blip.tv/file/1949281

包括:

  • 不兼容;
  • 解決;
  • 待辦事項;
  • 自動遷移工具。
0

越來越多的我被說服了,正確的答案是「只要運行你的測試套件就可以找出答案。」你有你的測試套件合理地覆蓋你的程序,對嗎?如果沒有,這是一個很好的機會來創建一個(你可以說服你的點頭老大,它是「移民」))。

相關問題