瘋狂上漲的Python 開發(fā)者應(yīng)從2.x還是3.x著手?
縱觀各大編程語言在 2017 年的發(fā)展情況,我們會發(fā)現(xiàn)涌現(xiàn)出諸如 Go、Swift 這類后起之秀,而其中最為耀眼的當(dāng)屬 Python。之所以 Python 如此受捧,不僅僅是人工智能、數(shù)字科學(xué)領(lǐng)域的興起,而且與其自身的特性必不可分,正應(yīng)了“Life is short,you need Python!”。但與此同時,不少開發(fā)者開始糾結(jié) Python 的入門究竟該從 2.x 還是 3.x 開始學(xué)起?
畢竟 Python 語言作者 Guido van Rossum 曾于 2014 年宣布 Python 2.7 支持時間延長到 2020 年。Python 2.7 是 2.x 系列的最后一個版本,它的繼承者 Python 3.0 在 2008 年 12 月發(fā)布,但不兼容 2.x 系列。也就意味著 2020 年之前,對于 Python 2.x 會一直提供 bug 修正,但它卻與 3.x 不兼容。 所以我們該如何抉擇?又該如何快速著手呢?
Python 2.x vs Python 3.x
基于此,Semaphore 社區(qū)調(diào)查了 Python 在 Semaphore 的托管 CI 服務(wù)中構(gòu)建應(yīng)用程序的使用情況。據(jù)去年的調(diào)查結(jié)果顯示,有 70% 以上的用戶仍在使用 Python 2.7,Python 3 的使用率較低。而今年,Python 3 的使用出現(xiàn)了明顯的上漲,漲幅約 8.2%。如下圖所示:

相較而言,使用 Python 3 的開發(fā)者更愿意進行版本更新。去年,Python 3.5 的使用率達到 60%,Python 3.4 的使用率占 30%。今年的調(diào)查數(shù)據(jù)顯示,3.5 版和 3.4 版的使用率分別只占 34% 和 20%,有 35% 的用戶已經(jīng)開始使用 Python 3.6。

根據(jù) Python 2.7 和 Python 3 各版本的使用率對比圖,我們可以看出 Python 3.x 版的用戶群體正在迅速擴展:

針對大家始終糾結(jié)的 Python 2.x 或 Python 3.x,不少網(wǎng)友也給出了自己的建議:
nexcvon:Python 3 有很大改進,比 Python 2 更容易理解。 如果大家決定學(xué) Python 2.x,建議當(dāng)被 string bytes 搞暈時,了解一下 Python 3,再做決定。另外,Python 3 的庫已經(jīng)比較全了,不支持 Python 3 的,多數(shù)是不再維護的。
林燦斌:編程最重要的是編程思想,Python 3 和 Python 2 雖然不同,但是它的思想基本是共通的,只有少量的語法差異。而編程中,語法只是細枝末節(jié)的東西。當(dāng)你學(xué)會了 Python 3,只要稍微花一點時間學(xué)習(xí) Python 2 的語法,那么這兩種語言也都學(xué)會了。而認識語法差距所花費的時間,一般也不會比大家在糾結(jié)學(xué)哪個版本所花的時間更多。
adv adj:Python 語言的最大優(yōu)勢并不是語言本身的特性,而是它擁有腳本語言中最豐富的第三方包(模塊、庫),這是其他任何語言都無法比擬的巨大優(yōu)勢。很多人學(xué) Python 并不是因為 Python 適合開發(fā)什么軟件或者工程,而是因為 Python 擁有某個非常適合他們工作相關(guān)領(lǐng)域的簡單易用的工具包。所以,學(xué) Python 2 還是 3 關(guān)鍵要考慮的是你所準備使用的模塊是否支持 3.x。
黃歡:建議先學(xué)習(xí) Python2.7, 隨后再了解 Python 3.x 與 Python 2.7 的差異部分。
整體而言,基于以上數(shù)據(jù),大多數(shù)開發(fā)者更傾向于 Python 3.x。
快速上手 Python
有了一定的方向,接下來的問題及時如何快速著手 Python 的學(xué)習(xí)?下文將推薦開發(fā)者必備的六個庫,無論你是正在使用 Python 進行快速開發(fā),還是在為 Python 桌面應(yīng)用制作原生 UI ,或者是在優(yōu)化現(xiàn)有的 Python 代碼,以下這些 Python 項目都是應(yīng)該使用的。
Python 憑借其易用的特點,已經(jīng)被工業(yè)界和學(xué)術(shù)界廣泛采用。另一方面,Python 豐富的第三方項目——庫、附加組件,和輔助的開發(fā)成果——使得 Python 語言的應(yīng)用范圍被不斷擴大。
其中一些項目,比如 PyInstaller 和 WxPython ,為那些制作桌面應(yīng)用和終端應(yīng)用的 Python 開發(fā)者提供了便利。其他的項目, 比如 PyPy , 則是用來給服務(wù)器端 Python 應(yīng)用提供額外的動力。還有一些,像 PBR 、CFFI 和 MyPy , 適用于差不多所有五花八門的 Python 應(yīng)用,無論在什么地方運行。
以下所有這些項目,在近幾周都發(fā)布了新的主要版本。
Python 必備之 PyPy
PyPy 主要用于何處?
如果你需要更快的 Python 應(yīng)用程序,最簡單的實現(xiàn)的方法就是通過 PyPy ,Python 運行時與實時(JIT)編譯器。與使用普通的 Python 對等程序相比,使用 PyPy 的 Python 應(yīng)用程序的運行速度平均提升 7.5 倍。不幸的是,PyPy 與許多 Python 的明星框架并不是很好地兼容。PyPy 5.9 在解決這個問題上取得了重大進展。
PyPy 5.9 的功能
數(shù)據(jù)科學(xué)框架 NumPy 和 Pandas 現(xiàn)在運行在 PyPy 的 Python 2.7 兼容版本上。這些框架的大部分問題來源于 PyPy 與現(xiàn)有 C 代碼的接口。為了解決這個問題,PyPy 5.9 對 CFFI 庫(見下文)和 PyPy 的 Python C API 兼容性層進行了改進。
此外,在 5.9 發(fā)布版本中,PyPy 的 JSON 解析器在處理多種 JSON 對象,尤其是那些重復(fù)使用的相同的詞典鍵值時,明顯更快。
何處下載 PyPy 5.9
PyPy 的網(wǎng)站二進制版本下載地址:https://pypy.org/download.html。
官方二進制文件包括 Windows、Mac OS 和 Linux 的不同 CPU 架構(gòu)。請注意,為了兼容 Python 2.7 和 Python 3.5 ,存在不同的二進制文件,因此請確保你正在獲取與你將要運行的腳本所匹配的版本。
源碼和 Bug 跟蹤可以在 BitBucket(https://bitbucket.org/pypy/pypy) 上找到。
Python 必備之 CFFI
CFFI 主要用于何處?
C 外部函數(shù)接口庫(CFFI)為 Python 應(yīng)用程序與獨立 C 庫的交互提供了一種機制。雖然 Python 的 stock 版本,CPython,也擁有自己的庫來完成此類功能,稱為 Ctypes ,但對 Python 用戶來說,比起 Ctypes ,CFFI 使得與 C 庫的交互更容易、更簡便。
CFFI 1.11 的功能
與 PyPy 一起更新的 CFFI v1.11 增加了很小但很有用的改動?,F(xiàn)在可以在即將發(fā)布的 Python 3.7 上使用betas了,在 Windows 上更好地支持外部錯誤處理,并支持 C 語言中更多的現(xiàn)代標準類型,例如 float/double _Complex 和 char16_t和char_32t 類型。最后兩個也是最重要的,在 C 庫中默認使用 Unicode 編碼。
何處下載 CFFI 1.11 ?
CFFI 下載地址:https://pypi.python.org/pypi/cffi,或通過 Python 的 pip 工具安裝:pip install cffi 。源碼和問題跟蹤可以在 BitBucket(https://bitbucket.org/cffi/cffi) 上找到。
Python 必備之 PyInstaller
PyInstaller 主要用于何處?
關(guān)于 Python 的最常見的問題之一是“如何從 Python 腳本中生成獨立的可執(zhí)行文件?” PyInstaller 一直是對此最好的答案之一。
PyInstaller 3.3 的功能
PyInstaller 將 Python 應(yīng)用程序打包到單目錄或單文件的可執(zhí)行文件中,捆綁任何所需的第三方庫,并可與絕大多數(shù)常見的庫和框架配合使用。
PyInstaller 3.3 中最大的改進是對 Python 3.6 的支持,因為鑒于 Python 3.6 已經(jīng)發(fā)布這確實是必要的。
PyInstaller 3.3 還包括一個更廣泛兼容的引導(dǎo)加載程序,適用于 Windows 可執(zhí)行文件,并擴展了對捆綁常見庫(如 QT、GTK +、NumPy 和 Django )的支持。
PyInstaller 在不久之后可能添加的一個功能是交叉打包,例如,在 Windows 上創(chuàng)建 Mac 兼容的應(yīng)用程序。你需要在要部署的同一平臺上運行該 PyInstaller ,無論是 Windows、Mac 還是 Linux 。
何處下載 PyInstaller 3.3 ?
PyInstaller 下載地址:https://pypi.python.org/pypi/PyInstaller/3.3,也可通過 Python 的 pip 工具安裝:pip install pyinstaller 。對于那些需要自己編譯引導(dǎo)加載程序的人,源碼可以在 GitHub(https://github.com/pyinstaller/pyinstaller) 上找到,但對多數(shù)人而言是不需要這么做的。
Python 必備之 Python Build Reasonableness (PBR)
Python PBR 主要用于何處?
Setuptools 是用于打包 Python 項目的標準的 Python 問題子系統(tǒng)。管理特定項目的 Setuptools 可能會變得非常繁瑣,特別是在自動生成需求、管理文檔文件或編輯項目貢獻者數(shù)據(jù)時。
Python PBR 的功能
PBR, Python Build Reasonableness 的縮寫,是以一致的方式用于管理 Setuptools 包的庫。它可以自動化許多 Setuptools 打包的設(shè)置,例如版本號、生成作者和 ChangeLog 文件,以及生成 Sphinx 風(fēng)格的文檔。PBR 最初是作為 OpenStack 項目的一部分開發(fā)的,但現(xiàn)在你所使用 PBR 中維護的內(nèi)容與 OpenStack 已經(jīng)沒有任何聯(lián)系了。
哪里可以下載 Python PBR ?
PBR 在 Python Package Index 上可以找到(https://pypi.python.org/pypi/pbr),并且可以和 pip 一起安裝,只需要輸入 pip install pbr 即可。 源碼可在 GitHub(https://github.com/openstack-dev/pbr) 上下載。
Python 必備之 WxPython
WxPython 主要用于何處?
想要實現(xiàn)跨平臺桌面應(yīng)用程序的 Python 開發(fā)人員可以從多個工具包中進行選擇。 WxPython,是 WxWidgets 庫的一個封裝,使用了其所支持主機平臺的原生 UI 元素,包括 Windows、Mac、Linux 和其他類 Unix 操作系統(tǒng)。
WxPython 4.0 的功能
早期版本的 WxPython 被放棄了是由于其傳統(tǒng)的設(shè)計決策,使其變得越來越慢,而且不太適合使用。為了解決這個問題,WxPython 的開發(fā)人員對 WxPython 的 4.0 分支做了重大改變。
目標是允許開發(fā)人員更快地上手 WxPython ,并且使通過它創(chuàng)建的框架和應(yīng)用程序更加高性能和易維護。然而,為了使用 WxPython 4.0 ,任何現(xiàn)有的使用 WxPython 項目都需要修改。
何處可以下載 WxPython 4.0 ?
WxPython 4.0 官方版本依然是 beta 版。它可以在 Python Package Index(https://pypi.python.org/pypi/wxPython/4.0.0b2) 上找到,即通過 pip install wxpython 命令。在正式發(fā)布前它可能會更新數(shù)次,注意經(jīng)常檢查更新。
那些想直接破解的人可以查看 GitHub(https://github.com/wxWidgets/Phoenix) 上的代碼庫。請注意,WxPython 的 4.0 分支以 “Phoenix” 代號進行標記的,以使其與早期版本不同。
Python 必備之 Mypy
Mypy 主要用于何處?
Python 的動態(tài)性既是一種福音,也是一種煩惱,對于快速構(gòu)建軟件非常棒,但是當(dāng)代碼難以推理、測試和調(diào)試時,并不是很棒。Mypy 在編譯時向 Python 添加靜態(tài)類型檢查,使 Python 程序更加一致和可維護,并且不會增加運行時開銷。
Mypy 0.530 的功能
Mypy 0.530 添加了不同協(xié)議的支持,該協(xié)議是用于 Python 子類的目前實驗性類型的功能。它還在僅用于包含特定類型的對象的字典中添加 “TypedDict” 類型,并且可以逐個對文件進行更嚴格的類型檢查的選項。
哪里可以下載 Mypy 0.530 ?
Mypy 下載地址:https://pypi.python.org/pypi/mypy,并通過 pip install mypy 來安裝。Mypy 可以通過 GitHub(https://github.com/python/mypy) 查看源碼。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解
今天小編就為大家分享一篇Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
python如何實現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)
這篇文章主要介紹了python如何實現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03

