2008-10-04 77 views
13

有沒有人知道在「幾乎所有」廣泛使用的Python庫與Python 3.0一起工作之前需要多長時間?什麼時候大多數的庫會被Python 3兼容?

我打算在2.X上停留一段時間,因爲我不想開始移植東西,然後發現我已經依賴的某個庫或者可能開始使用的新庫不起作用與py3k。

我的理解是,py3k beta過程是專門爲圖書館開發人員提供時間來移動他們的東西。這是否發生?在各種各樣的我談論圖書館的

例子是PIL,numpy的/ SciPy的,SQLAlchemy的,BeautifulSoup,CherryPy的...

回答

4

您列出了可能會被很快移植的例子,因爲他們是如此廣泛使用。

如果BeautifulSoup需要一個多月的時間(事實上,我很驚訝它已經沒有使用py3k beta版已經移植過了),像numpy這樣的更復雜的東西可能需要更長的時間,特別是因爲2to3只適用於python源代碼,不適用於C模塊。

很難概括 - 某些模塊可能永遠不會移植,有些模塊可能需要幾天,其他可能需要幾年時間。它可能最終會成爲一種情況:「我沒有將我的庫移植到Python3,沒有人使用它!」/「好吧,我沒有將我的項目移植到python3,沒有庫已經更新! 「,但我希望不是!

+0

我認爲你有點草率地宣稱NumPy很快就會被移植。現在已經過了六個月了,它還沒有完全移植到2.6。 – 2009-04-02 16:37:54

+1

我說它可能需要「更長」的端口numpy ..雖然你是對的,我有點過於樂觀..我不認爲即使BeautifulSoup已被移植(我移動了一個項目,我用它在因此ElementTree) – dbr 2009-04-02 18:04:57

1

我在CherryPy知識庫中看到的一些評論是,對套接字模塊的一些更改將需要對邏輯進行大量的修改。我預計CherryPy將會比其他一些項目要慢到3.0。

4

實際上,對您的問題的回覆取決於許多不同人(Python std lib之外的所有庫的維護者)的行爲,我認爲沒有人可以給您一個可靠的答案給您題。

這就是說,你已經有了一些答案,而且你會有更多的答案。然而,我們同意一件事:作爲一個經驗法則,我通常認爲重要的項目(主要與工作有關)不應立即移植到新的開發技術(Python 3,.Net 3.x等),直到你的答案已經得到解答,許多初始錯誤已經解決。

對於寵物或測試項目,儘管如此,我全部用於更新和實驗。

1

遷移計劃中的一般思路是繼續使用2.x,然後慢慢將代碼更改爲3.x.您將在至少 1.5年內擔心它。當然,雞和雞蛋的問題。

1

我記得Adrian(django的BFDL)說Guido給了他們5年的時間限制。

0

一旦有人提出了一些嚴肅的時間來移植它們,您提到的庫將被移植。

在NumPy/SciPy的特定情況下,很大一部分代碼被寫爲C擴展。對於C擴展沒有2to3工具,因此將代碼轉換爲cPython3 C擴展需要使用的格式需要大量的工時。

相關問題