Python開(kāi)發(fā)者的6個(gè)必備庫(kù)
無(wú)論你是正在使用 Python 進(jìn)行快速開(kāi)發(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ù)、附加組件,和輔助的開(kāi)發(fā)成果——使得 Python 語(yǔ)言的應(yīng)用范圍被不斷擴(kuò)大。
其中一些項(xiàng)目,比如 PyInstaller 和 WxPython ,為那些制作桌面應(yīng)用和終端應(yīng)用的 Python 開(kāi)發(fā)者提供了便利。其他的項(xiàng)目, 比如 PyPy , 則是用來(lái)給服務(wù)器端 Python 應(yīng)用提供額外的動(dòng)力。還有一些,像 PBR 、CFFI 和 MyPy , 適用于差不多所有五花八門(mén)的 Python 應(yīng)用,無(wú)論在什么地方運(yùn)行。
如果你是一個(gè) Python 開(kāi)發(fā)者,所有這六個(gè)項(xiàng)目都值得你來(lái)熟悉一下。而且所有這些項(xiàng)目,在近幾周都發(fā)布了新的主要版本。
一、Python 必備之 PyPy
1. PyPy 主要用于何處?
如果你需要更快的 Python 應(yīng)用程序,最簡(jiǎn)單的實(shí)現(xiàn)的方法就是通過(guò) PyPy ,Python 運(yùn)行時(shí)與實(shí)時(shí)(JIT)編譯器。與使用普通的 Python 對(duì)等程序相比,使用 PyPy 的 Python 應(yīng)用程序的運(yùn)行速度平均提升7.5倍。不幸的是,PyPy 與許多 Python 的明星框架并不是很好地兼容。PyPy 5.9 在解決這個(gè)問(wèn)題上取得了重大進(jìn)展。
2. PyPy 5.9 的功能
數(shù)據(jù)科學(xué)框架 NumPy 和 Pandas 現(xiàn)在運(yùn)行在 PyPy 的 Python 2.7 兼容版本上。這些框架的大部分問(wèn)題來(lái)源于 PyPy 與現(xiàn)有 C 代碼的接口。為了解決這個(gè)問(wèn)題,PyPy 5.9 對(duì) CFFI 庫(kù)(見(jiàn)下文)和 PyPy 的 Python C API 兼容性層進(jìn)行了改進(jìn)。
此外,在 5.9 發(fā)布版本中,PyPy 的 JSON 解析器在處理多種 JSON 對(duì)象,尤其是那些重復(fù)使用的相同的詞典鍵值時(shí),明顯更快。
3. 何處下載 PyPy 5.9
你可以直接從 PyPy 的網(wǎng)站下載二進(jìn)制版本。官方二進(jìn)制文件包括 Windows、Mac OS 和 Linux 的不同 CPU 架構(gòu)。請(qǐng)注意,為了兼容 Python 2.7 和 Python 3.5 ,存在不同的二進(jìn)制文件,因此請(qǐng)確保你正在獲取與你將要運(yùn)行的腳本所匹配的版本。
二、Python 必備之 CFFI
1. CFFI 主要用于何處?
C 外部函數(shù)接口庫(kù)(CFFI)為 Python 應(yīng)用程序與獨(dú)立 C 庫(kù)的交互提供了一種機(jī)制。雖然 Python 的 stock 版本,CPython,也擁有自己的庫(kù)來(lái)完成此類(lèi)功能,稱(chēng)為 Ctypes ,但對(duì) Python 用戶(hù)來(lái)說(shuō),比起 Ctypes ,CFFI 使得與 C 庫(kù)的交互更容易、更簡(jiǎn)便。
2. 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)類(lèi)型,例如 float/double _Complex 和 char16_t和char_32t 類(lèi)型。最后兩個(gè)也是最重要的,在 C 庫(kù)中默認(rèn)使用 Unicode 編碼。
3. 何處下載 CFFI 1.11 ?
CFFI 在 Python Package Index 上可以單獨(dú)下載,或通過(guò) Python 的 pip 工具安裝:pip install cffi 。源碼和問(wèn)題跟蹤可以在 BitBucket 上找到。
三、Python 必備之 PyInstaller
1. PyInstaller 主要用于何處?
關(guān)于 Python 的最常見(jiàn)的問(wèn)題之一是“如何從 Python 腳本中生成獨(dú)立的可執(zhí)行文件?” PyInstaller 一直是對(duì)此最好的答案之一。
2. PyInstaller 3.3 的功能
- PyInstaller 將 Python 應(yīng)用程序打包到單目錄或單文件的可執(zhí)行文件中,捆綁任何所需的第三方庫(kù),并可與絕大多數(shù)常見(jiàn)的庫(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ì)捆綁常見(jiàn)庫(kù)(如 QT、GTK +、NumPy 和 Django )的支持。
- PyInstaller 在不久之后可能添加的一個(gè)功能是交叉打包,例如,在 Windows 上創(chuàng)建 Mac 兼容的應(yīng)用程序。你需要在要部署的同一平臺(tái)上運(yùn)行該 PyInstaller ,無(wú)論是 Windows、Mac 還是 Linux 。
何處下載 PyInstaller 3.3 ?PyInstaller 可以通過(guò) Python Package Index 安裝,也可通過(guò) Python 的 pip 工具安裝:pip install pyinstaller 。對(duì)于那些需要自己編譯引導(dǎo)加載程序的人,源碼可以在 GitHub 上找到,但對(duì)多數(shù)人而言是不需要這么做的。
四、Python 必備之 Python Build Reasonableness (PBR)
1. Python PBR 主要用于何處?
Setuptools 是用于打包 Python 項(xiàng)目的標(biāo)準(zhǔn)的 Python 問(wèn)題子系統(tǒng)。管理特定項(xiàng)目的 Setuptools 可能會(huì)變得非常繁瑣,特別是在自動(dòng)生成需求、管理文檔文件或編輯項(xiàng)目貢獻(xiàn)者數(shù)據(jù)時(shí)。
2. Python PBR 的功能
PBR, Python Build Reasonableness 的縮寫(xiě),是以一致的方式用于管理 Setuptools 包的庫(kù)。它可以自動(dòng)化許多 Setuptools 打包的設(shè)置,例如版本號(hào)、生成作者和 ChangeLog 文件,以及生成 Sphinx 風(fēng)格的文檔。PBR 最初是作為 OpenStack 項(xiàng)目的一部分開(kāi)發(fā)的,但現(xiàn)在你所使用 PBR 中維護(hù)的內(nèi)容與 OpenStack 已經(jīng)沒(méi)有任何聯(lián)系了。
3. 哪里可以下載 Python PBR ?
PBR 在 Python Package Index 上可以找到,并且可以和 pip 一起安裝,只需要輸入 pip install pbr 即可。 源碼可在 GitHub 上下載。
五、Python 必備之 WxPython
1. WxPython 主要用于何處?
想要實(shí)現(xiàn)跨平臺(tái)桌面應(yīng)用程序的 Python 開(kāi)發(fā)人員可以從多個(gè)工具包中進(jìn)行選擇。 WxPython,是 WxWidgets 庫(kù)的一個(gè)封裝,使用了其所支持主機(jī)平臺(tái)的原生 UI 元素,包括 Windows、Mac、Linux 和其他類(lèi) Unix 操作系統(tǒng)。
2. WxPython 4.0 的功能
早期版本的 WxPython 被放棄了是由于其傳統(tǒng)的設(shè)計(jì)決策,使其變得越來(lái)越慢,而且不太適合使用。為了解決這個(gè)問(wèn)題,WxPython 的開(kāi)發(fā)人員對(duì) WxPython 的 4.0 分支做了重大改變。
目標(biāo)是允許開(kāi)發(fā)人員更快地上手 WxPython ,并且使通過(guò)它創(chuàng)建的框架和應(yīng)用程序更加高性能和易維護(hù)。然而,為了使用 WxPython 4.0 ,任何現(xiàn)有的使用 WxPython 項(xiàng)目都需要修改。
3. 何處可以下載 WxPython 4.0 ?
WxPython 4.0 官方版本依然是 beta 版。它可以在 Python Package Index 上找到,即通過(guò) pip install wxpython 命令。在正式發(fā)布前它可能會(huì)更新數(shù)次,注意經(jīng)常檢查更新。
那些想直接破解的人可以查看 GitHub 上的代碼庫(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)類(lèi)型檢查,使 Python 程序更加一致和可維護(hù),并且不會(huì)增加運(yùn)行時(shí)開(kāi)銷(xiāo)。
Mypy 0.530 的功能Mypy 0.530 添加了不同協(xié)議的支持,該協(xié)議是用于 Python 子類(lèi)的目前實(shí)驗(yàn)性類(lèi)型的功能。它還在僅用于包含特定類(lèi)型的對(duì)象的字典中添加 “TypedDict” 類(lèi)型,并且可以逐個(gè)對(duì)文件進(jìn)行更嚴(yán)格的類(lèi)型檢查的選項(xiàng)。