Python | 開發者必備的 6 個庫
無論你是正在使用 Python 進行快速開發,還是在為 Python 桌面應用製作原生 UI ,或者是在優化現有的 Python 程式碼,以下這些 Python 專案都是應該使用的。
Python 憑藉其易用的特點,已經被工業界和學術界廣泛採用。另一方面,Python 豐富的第三方專案——庫、附加元件,和輔助的開發成果——使得 Python 語言的應用範圍被不斷擴大。
其中一些專案,比如 PyInstaller 和 WxPython ,為那些製作桌面應用和終端應用的 Python 開發者提供了便利。
其他的專案, 比如 PyPy , 則是用來給伺服器端 Python 應用提供額外的動力。還有一些,像 PBR 、CFFI 和 MyPy , 適用於差不多所有五花八門的 Python 應用,無論在什麼地方執行。
如果你是一個 Python 開發者,所有這六個專案都值得你來熟悉一下。而且所有這些專案,在近幾周都發布了新的主要版本。
Python 必備之 PyPy
PyPy 主要用於何處?
如果你需要更快的 Python 應用程式,最簡單的實現的方法就是通過 PyPy ,Python 執行時與實時(JIT)編譯器。與使用普通的 Python 對等程式相比,使用 PyPy 的 Python 應用程式的執行速度平均提升7.5倍。
不幸的是,PyPy 與許多 Python 的明星框架並不是很好地相容。PyPy 5.9 在解決這個問題上取得了重大進展。
PyPy 5.9 的功能
資料科學框架 NumPy 和 Pandas 現在執行在 PyPy 的 Python 2.7 相容版本上。這些框架的大部分問題來源於 PyPy 與現有 C 程式碼的介面。為了解決這個問題,PyPy 5.9 對 CFFI 庫(見下文)和 PyPy 的 Python C API 相容性層進行了改進。
此外,在 5.9 釋出版本中,PyPy 的 JSON 解析器在處理多種 JSON 物件,尤其是那些重複使用的相同的詞典鍵值時,明顯更快。
何處下載 PyPy 5.9
你可以直接從 PyPy 的網站下載二進位制版本:https://pypy.org/download.html 官方二進位制檔案包括 Windows、Mac OS 和 Linux 的不同 CPU 架構。
請注意,為了相容 Python 2.7 和 Python 3.5 ,存在不同的二進位制檔案,因此請確保你正在獲取與你將要執行的指令碼所匹配的版本。
BitBucket 上有原始碼和錯誤跟蹤記錄:https://bitbucket.org/pypy/pypy
Python 必備之 CFFI
CFFI 主要用於何處?
C 外部函式介面庫(CFFI)(https://cffi.readthedocs.io/)為 Python 應用程式與獨立 C 庫的互動提供了一種機制。
雖然 Python 的 stock 版本,CPython,也擁有自己的庫來完成此類功能,稱為 Ctypes ,但對 Python 使用者來說,比起 Ctypes ,CFFI 使得與 C 庫的互動更容易、更簡便。
CFFI 1.11 的功能
與 PyPy 一起更新的 CFFI v1.11 (https://cffi.readthedocs.io/en/latest/whatsnew.html#v1-11)增加了很小但很有用的改動。
現在可以在即將釋出的 Python 3.7 上使用betas了,在 Windows 上更好地支援外部錯誤處理,並支援 C 語言中更多的現代標準型別,例如 float/double _Complex 和 char16_t和char_32t 型別。最後兩個也是最重要的,在 C 庫中預設使用 Unicode 編碼。
何處下載 CFFI 1.11 ?
CFFI 在 Python Package Index 上可以單獨下載:https://pypi.python.org/pypi/cffi
或通過 Python 的 pip 工具安裝:pip install cffi 。原始碼和問題跟蹤可以在 BitBucket(https://bitbucket.org/cffi/cffi) 上找到。
Python 必備之 PyInstaller
PyInstaller 主要用於何處?
關於 Python 的最常見的問題之一是“如何從 Python 指令碼中生成獨立的可執行檔案?” PyInstaller (https://github.com/pyinstaller/pyinstaller)一直是對此最好的答案之一。
PyInstaller 3.3 的功能
PyInstaller 將 Python 應用程式打包到單目錄或單檔案的可執行檔案中,捆綁任何所需的第三方庫,並可與絕大多數常見的庫和框架配合使用。
PyInstaller 3.3 中最大的改進是對 Python 3.6 的支援,因為鑑於 Python 3.6 已經發布這確實是必要的。
PyInstaller 3.3 (https://github.com/pyinstaller/pyinstaller/releases/tag/v3.3)還包括一個更廣泛相容的引導載入程式,適用於 Windows 可執行檔案,並擴充套件了對捆綁常見庫(如 QT、GTK +、NumPy 和 Django )的支援。
PyInstaller 在不久之後可能新增的一個功能是交叉打包,例如,在 Windows 上建立 Mac 相容的應用程式。你需要在要部署的同一平臺上執行該 PyInstaller ,無論是 Windows、Mac 還是 Linux 。
何處下載 PyInstaller 3.3 ?
PyInstaller 可以通過 Python Package Index 安裝:https://pypi.python.org/pypi/PyInstaller/3.3
也可通過 Python 的 pip 工具安裝:pip install pyinstaller 。對於那些需要自己編譯引導載入程式的人,原始碼可以在 GitHub (https://github.com/pyinstaller/pyinstaller)上找到,但對多數人而言是不需要這麼做的。
Python 必備之 Python Build Reasonableness (PBR)
Python PBR 主要用於何處?
Setuptools 是用於打包 Python 專案的標準的 Python 問題子系統。
管理特定專案的 Setuptools 可能會變得非常繁瑣,特別是在自動生成需求、管理文件檔案或編輯專案貢獻者資料時。
Python PBR 的功能
PBR(https://docs.openstack.org/pbr/latest/), Python Build Reasonableness 的縮寫,是以一致的方式用於管理 Setuptools 包的庫。
它可以自動化許多 Setuptools 打包的設定,例如版本號、生成作者和 ChangeLog 檔案,以及生成 Sphinx 風格的文件。
PBR 最初是作為 OpenStack 專案的一部分開發的,但現在你所使用 PBR 中維護的內容與 OpenStack 已經沒有任何聯絡了。
哪裡可以下載 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 主要用於何處?
想要實現跨平臺桌面應用程式的 Python 開發人員可以從多個工具包中進行選擇。
WxPython(https://wxpython.org/),是 WxWidgets(https://www.wxwidgets.org/) 庫的一個封裝,使用了其所支援主機平臺的原生 UI 元素,包括 Windows、Mac、Linux 和其他類 Unix 作業系統。
WxPython 4.0 的功能
早期版本的 WxPython 被放棄了是由於其傳統的設計決策,使其變得越來越慢,而且不太適合使用。
為了解決這個問題,WxPython 的開發人員對 WxPython 的 4.0 分支做了重大改變。
目標是允許開發人員更快地上手 WxPython ,並且使通過它建立的框架和應用程式更加高效能和易維護。然而,為了使用 WxPython 4.0 ,任何現有的使用 WxPython 專案都需要修改(https://wxpython.org/Phoenix/docs/html/MigrationGuide.html)。
哪裡可以下載 WxPython 4.0 ?
WxPython 4.0 官方版本依然是 beta 版。它可以在 Python Package Index 上找到:https://pypi.python.org/pypi/wxPython/4.0.0b2 即通過 pip install wxpython 命令。在正式釋出前它可能會更新數次,注意經常檢查更新。
那些想直接破解的人可以檢視 GitHub 上的程式碼庫(https://github.com/wxWidgets/Phoenix)。請注意,WxPython 的 4.0 分支以 “Phoenix” 代號進行標記的,以使其與早期版本不同。
Python 必備之 Mypy
Mypy 主要用於何處?
Python 的動態性既是一種福音,也是一種煩惱,對於快速構建軟體非常棒,但是當代碼難以推理、測試和除錯時,並不是很棒。
Mypy(http://www.infoworld.com/cms/article/mypy-lang.blogspot.com) 在編譯時向 Python 新增靜態型別檢查,使 Python 程式更加一致和可維護,並且不會增加執行時開銷。
Mypy 0.530 的功能
Mypy 0.530 (http://mypy-lang.blogspot.com/2017/10/mypy-0530-released.html)添加了不同協議(http://mypy.readthedocs.io/en/latest/class_basics.html#protocols-and-structural-subtyping)的支援,該協議是用於 Python 子類的目前實驗性型別的功能。
它還在僅用於包含特定型別的物件的字典中新增 “TypedDict” 型別,並且可以逐個對檔案進行更嚴格的型別檢查的選項。
哪裡可以下載 Mypy 0.530 ?
Mypy 可以在 Python Package Index 上找到:https://pypi.python.org/pypi/mypy 並通過 pip install mypy 來安裝。那些對 Mypy 實現感興趣的人可以通過 GitHub (https://github.com/python/mypy)檢出原始碼。
原文釋出時間為:2018-09-11
原文作者: 上海小胖