真的要說再見,PyTorch宣告不再支持Python2
- 2019 年 10 月 7 日
- 筆記
參與:一鳴、杜偉
自從官方宣布 2020 年 1 月後不再更新維護 Python2,已經有一大批開源軟件將其拋棄。今天,拋棄 Python2 的名單上又多了一個重磅軟件。
Python2 是 Python 官方在 2000 年開源的 Python 新版本,但因為其自身的問題,導致 Python 官方几年內就推出了新的 Python3。出於保護開源社區的初衷,官方並沒有強迫開發者升級,並繼續給予 Python2 更新維護,因此 Python2 就一直苟延殘喘到了今年。
眼看留在 Python2 的開發者不太可能繼續更新,Python 官方終於發了大招,他們宣布:2020 年 1 月起不再維護 Python2。大量開源軟件,如 Numpy、Pandas 等都宣布放棄 Python2,但是只有 PyTorch 官方沒有表態。近日,他們的開發工程師在論壇上透露:我們也不再支持 Python2 了。
官方聲明
PyTorch 的官方維護者表示,他們不會再支持 Python2,聲明全文如下:
現在幾乎所有主要的開源 Python 包都支持 Python 3.x 和 Python 2.7 版本,並且很多項目幾年前就已經支持這兩個版本的 Python 語言了。雖然我們已經開發了相應的工具和技術來有效地維護版本之間的兼容性,但在開發大量代碼的過程中依然不斷出現一些小問題。
所以,我們希望充分發揮 Python 3 的應用潛能,並且現在依然允許用戶編寫兼容兩個版本的代碼,以實現平穩的過渡。但是,我們並不打算無限期地維護版本兼容性。雖然向 Python 3 的過渡並不如我們所預期的那樣快速,但越來越多的用戶開始使用、講授和推薦 Python 3 了。
雖然 Python 3 早已在 2008 年開源,但 Python 語言的開發者意識到依然有很多用戶使用 Python 2,所以從 2015 年開始他們擴展了對 Python 2.7 的支持。我們相信多留給用戶的這 5 年足以順利地完成向 Python 3 的過渡,並且將在 2020 年 1 月 1 日之後停止對 Python 2 的支持。之後,我們將簡化代碼,充分利用 Python 3 版本和標準庫的諸多新功能。
此外,需要注意的是,2020 年之前,我們的很多項目將不再支持 Python 2.7,僅支持 bug 修復,並且所有的新功能只有 Python 3 才支持。目前,一些 PyTorch 項目已經完成了向 Python 3 的過渡。
第三方或許可以對 Python 舊版本上的項目提供更長時間的付費支持。我們不會加以干涉,因為這種做法符合自由和開源軟件的核心原則。但是,如果你希望享受對 Scientific Python 堆棧等眾多項目的免費和第一方支持,請着手開始將自己的項目轉移到 Python 3。
基於以上這些原因,我們決定在 2020 年 1 月 1 日之後停止對 Python 2.7 的支持,從而與 Python 開發團隊放棄支持 Python 2.7 的時間線保持一致。
延伸閱讀:續命多年的 Python2
Python2 是 2000 年推出的 Python 版本,但是官方表示他們發現了一些問題,於是在 2006 年開始了 Python3 的開發工作,如果 Python3 能夠向下兼容,或者乾脆強硬一點讓 Python2 退場,也許就沒有今天這麼多麻煩事情了。
然而不巧的是,當時有大量的開源軟件和開發者在使用 Python2,它因其 Python 靈活友好的屬性,根植在了大大小小的程序和框架中,貿然迫使開發者放棄 Python2 無疑會讓整個開源社區大受打擊,甚至造成開發者流失的問題。甚至連 OSX 系統自帶的 Python 版本都是 Python2 的。於是,雙軌制的 Python2 和 Python3 開始了,Python 社區儼然分成了兩派。
原本官方打算在 2015 年下決心移除 Python2,但是似乎沒有什麼用處,依然有很多開發者,甚至是深度學習框架都在使用 Python2。因而停止維護的時間也就一拖再拖,直到 2020 年官方終於表示要停止維護了。
不過,究竟還會有多少人在停止維護後依然使用 Python2 呢?畢竟,想想 Windows XP 和 Windows 7。
參考鏈接:https://discuss.pytorch.org/t/dropping-python-2-support-on-january-1st-2020/56730