簡體   English   中英

我們可以在python 3.5下運行舊版python 2.7代碼嗎?

[英]Can we run legacy python 2.7 code under python 3.5?

我想升級到python 3.5,但我使用的是舊版python 2.7軟件包。 在python 3.5中運行舊版軟件包是否容易? 我一直覺得這並不容易,但是我進行了幾次搜索以查看我是否錯了,並沒有提出太多建議。

我希望有一個多處理程序包,該程序包允許在3.5代碼和2.7程序包之間進行標准化的切換,從而使它們可以在自己的環境中獨立運行,但對開發人員而言卻是無縫的。

我不是在談論將自己的代碼轉換為3.5,而是在談論我使用的不會為我自己更新的庫。

如果您使用2.7支持的更新的語法,例如圍繞異常,和/或更好的是,使用了從__future__導入的新功能, __future__代碼轉換為Python 3的時間要輕松得多(最多無需進行任何更改) 。 我建議先走這條路,因為它可以逐漸踩踏,而無需突然跳轉到Python 3。

我想具有不同版本的Python進程可以互操作,因為對象酸洗格式是兼容的,並且您可以在兩邊顯式使用特定的酸洗協議版本來確保這一點。 不過,我認為雙方的multiprocessing程序包都不會有用。 考慮使用例如ZeroMQ作為更通用的解決方案。

不幸的是,在3.5下沒有完美的或自動的方式來處理2.7代碼(效果很好)。

您提到過,您擔心的是庫,而不是自己的代碼-首先,希望它們如果正在積極開發中,則將對其進行更新。 如您所言,如果沒有,則可能是為了將來證明而編寫的。 我發現一些不錯的工具(例如google-api-python-client,例如https://github.com/google/google-api-python-client/blob/master/setup.py )。

如果不這樣做,升級的唯一方法就是自己修復所有語法更改。 我最常處理的是“打印”和異常處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM