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