Python開發(fā)者的6個必備庫

無論你是正在使用 Python 進行快速開發(fā)词裤,還是在為 Python 桌面應用制作原生 UI 夺艰,或者是在優(yōu)化現(xiàn)有的 Python 代碼,以下這些 Python 項目都是應該使用的淤袜。

Python 憑借其易用的特點妙黍,已經(jīng)被工業(yè)界和學術界廣泛采用。另一方面是整,Python 豐富的第三方項目——庫肖揣、附加組件,和輔助的開發(fā)成果——使得 Python 語言的應用范圍被不斷擴大浮入。

其中一些項目龙优,比如 PyInstaller 和 WxPython ,為那些制作桌面應用和終端應用的 Python 開發(fā)者提供了便利事秀。其他的項目, 比如 PyPy , 則是用來給服務器端 Python 應用提供額外的動力彤断。還有一些,像 PBR 易迹、CFFI 和 MyPy , 適用于差不多所有五花八門的 Python 應用宰衙,無論在什么地方運行。

如果你是一個 Python 開發(fā)者睹欲,所有這六個項目都值得你來熟悉一下供炼。而且所有這些項目,在近幾周都發(fā)布了新的主要版本窘疮。

Python 必備之 PyPy

Python學習群:593088321

PyPy 主要用于何處袋哼?

如果你需要更快的 Python 應用程序,最簡單的實現(xiàn)的方法就是通過 PyPy 闸衫,Python 運行時與實時(JIT)編譯器涛贯。與使用普通的 Python 對等程序相比,使用 PyPy 的 Python 應用程序的運行速度平均提升7.5倍蔚出。不幸的是疫蔓,PyPy 與許多 Python 的明星框架并不是很好地兼容。PyPy 5.9 在解決這個問題上取得了重大進展身冬。

PyPy 5.9 的功能

數(shù)據(jù)科學框架 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 對象掸掏,尤其是那些重復使用的相同的詞典鍵值時茁影,明顯更快。

何處下載 PyPy 5.9

你可以直接從 PyPy 的網(wǎng)站下載二進制版本丧凤。官方二進制文件包括 Windows募闲、Mac OS 和 Linux 的不同 CPU 架構。請注意愿待,為了兼容 Python 2.7 和 Python 3.5 浩螺,存在不同的二進制文件,因此請確保你正在獲取與你將要運行的腳本所匹配的版本仍侥。

BitBucket 上有源代碼和錯誤跟蹤記錄要出。

Python 必備之 CFFI

Python學習群:593088321

CFFI 主要用于何處? C 外部函數(shù)接口庫(CFFI)為 Python 應用程序與獨立 C 庫的交互提供了一種機制农渊。雖然 Python 的 stock 版本患蹂,CPython,也擁有自己的庫來完成此類功能砸紊,稱為 Ctypes 传于,但對 Python 用戶來說,比起 Ctypes 醉顽,CFFI 使得與 C 庫的交互更容易格了、更簡便。

CFFI 1.11 的功能與 PyPy 一起更新的 CFFI v1.11 增加了很小但很有用的改動』斩Γ現(xiàn)在可以在即將發(fā)布的 Python 3.7 上使用betas了盛末,在 Windows 上更好地支持外部錯誤處理,并支持 C 語言中更多的現(xiàn)代標準類型否淤,例如 float/double _Complex 和 char16_t和char_32t 類型悄但。最后兩個也是最重要的,在 C 庫中默認使用 Unicode 編碼石抡。

何處下載 CFFI 1.11 檐嚣?

CFFI 在 Python Package Index 上可以單獨下載,或通過 Python 的 pip 工具安裝:pip install cffi 啰扛。源碼和問題跟蹤可以在 BitBucket 上找到嚎京。

Python 必備之 PyInstaller

Python學習群:593088321

PyInstaller 主要用于何處?關于 Python 的最常見的問題之一是“如何從 Python 腳本中生成獨立的可執(zhí)行文件隐解?” PyInstaller 一直是對此最好的答案之一鞍帝。

PyInstaller 3.3 的功能PyInstaller 將 Python 應用程序打包到單目錄或單文件的可執(zhí)行文件中,捆綁任何所需的第三方庫煞茫,并可與絕大多數(shù)常見的庫和框架配合使用帕涌。

PyInstaller 3.3 中最大的改進是對 Python 3.6 的支持摄凡,因為鑒于 Python 3.6 已經(jīng)發(fā)布這確實是必要的

PyInstaller 3.3 還包括一個更廣泛兼容的引導加載程序,適用于 Windows 可執(zhí)行文件蚓曼,并擴展了對捆綁常見庫(如 QT亲澡、GTK +、NumPy 和 Django )的支持纫版。

PyInstaller 在不久之后可能添加的一個功能是交叉打包床绪,例如,在 Windows 上創(chuàng)建 Mac 兼容的應用程序其弊。你需要在要部署的同一平臺上運行該 PyInstaller 癞己,無論是 Windows、Mac 還是 Linux 瑞凑。

何處下載 PyInstaller 3.3 末秃?

PyInstaller 可以通過 Python Package Index 安裝概页,也可通過 Python 的 pip 工具安裝:pip install pyinstaller 籽御。對于那些需要自己編譯引導加載程序的人,源碼可以在 GitHub 上找到惰匙,但對多數(shù)人而言是不需要這么做的技掏。

Python必備之Python Build Reasonableness

Python PBR 主要用于何處?

Setuptools 是用于打包 Python 項目的標準的 Python 問題子系統(tǒng)项鬼。管理特定項目的 Setuptools 可能會變得非常繁瑣哑梳,特別是在自動生成需求、管理文檔文件或編輯項目貢獻者數(shù)據(jù)時绘盟。

Python PBR 的功能PBR, Python Build Reasonableness 的縮寫鸠真,是以一致的方式用于管理 Setuptools 包的庫。它可以自動化許多 Setuptools 打包的設置龄毡,例如版本號吠卷、生成作者和 ChangeLog 文件,以及生成 Sphinx 風格的文檔沦零。PBR 最初是作為 OpenStack 項目的一部分開發(fā)的祭隔,但現(xiàn)在你所使用 PBR 中維護的內容與 OpenStack 已經(jīng)沒有任何聯(lián)系了。

哪里可以下載 Python PBR 路操?

PBR 在 Python Package Index 上可以找到疾渴,并且可以和 pip 一起安裝,只需要輸入 pip install pbr 即可屯仗。 源碼可在 GitHub 上下載搞坝。

Python 必備之 WxPython

Python學習群:593088321

WxPython 主要用于何處?想要實現(xiàn)跨平臺桌面應用程序的 Python 開發(fā)人員可以從多個工具包中進行選擇魁袜。 WxPython瞄沙,是 WxWidgets 庫的一個封裝己沛,使用了其所支持主機平臺的原生 UI 元素,包括 Windows距境、Mac申尼、Linux 和其他類 Unix 操作系統(tǒng)。

WxPython 4.0 的功能早期版本的 WxPython 被放棄了是由于其傳統(tǒng)的設計決策垫桂,使其變得越來越慢师幕,而且不太適合使用。為了解決這個問題诬滩,WxPython 的開發(fā)人員對 WxPython 的 4.0 分支做了重大改變霹粥。

目標是允許開發(fā)人員更快地上手 WxPython ,并且使通過它創(chuàng)建的框架和應用程序更加高性能和易維護疼鸟。然而后控,為了使用 WxPython 4.0 ,任何現(xiàn)有的使用 WxPython 項目都需要修改空镜。

何處可以下載 WxPython 4.0 浩淘?WxPython 4.0 官方版本依然是 beta 版。它可以在 Python Package Index 上找到吴攒,即通過 pip install wxpython 命令张抄。在正式發(fā)布前它可能會更新數(shù)次,注意經(jīng)常檢查更新洼怔。

那些想直接破解的人可以查看 GitHub 上的代碼庫署惯。請注意,WxPython 的 4.0 分支以 “Phoenix” 代號進行標記的镣隶,以使其與早期版本不同极谊。

Python 必備之 Mypy

Mypy 主要用于何處?Python 的動態(tài)性既是一種福音安岂,也是一種煩惱轻猖,對于快速構建軟件非常棒,但是當代碼難以推理嗜闻、測試和調試時蜕依,并不是很棒。Mypy 在編譯時向 Python 添加靜態(tài)類型檢查琉雳,使 Python 程序更加一致和可維護样眠,并且不會增加運行時開銷。

Mypy 0.530 的功能Mypy 0.530 添加了不同協(xié)議的支持翠肘,該協(xié)議是用于 Python 子類的目前實驗性類型的功能檐束。它還在僅用于包含特定類型的對象的字典中添加 “TypedDict” 類型,并且可以逐個對文件進行更嚴格的類型檢查的選項束倍。

Python學習群:593088321

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末被丧,一起剝皮案震驚了整個濱河市盟戏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甥桂,老刑警劉巖柿究,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黄选,居然都是意外死亡蝇摸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門办陷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來貌夕,“玉大人,你說我怎么就攤上這事民镜》茸ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵制圈,是天一觀的道長们童。 經(jīng)常有香客問我,道長离唐,這世上最難降的妖魔是什么病附? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任问窃,我火速辦了婚禮亥鬓,結果婚禮上,老公的妹妹穿的比我還像新娘域庇。我一直安慰自己嵌戈,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布听皿。 她就那樣靜靜地躺著熟呛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尉姨。 梳的紋絲不亂的頭發(fā)上庵朝,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音又厉,去河邊找鬼九府。 笑死,一個胖子當著我的面吹牛覆致,可吹牛的內容都是我干的侄旬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼煌妈,長吁一口氣:“原來是場噩夢啊……” “哼儡羔!你這毒婦竟也來了宣羊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汰蜘,失蹤者是張志新(化名)和其女友劉穎仇冯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體族操,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡赞枕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坪创。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炕婶。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖莱预,靈堂內的尸體忽然破棺而出柠掂,到底是詐尸還是另有隱情,我是刑警寧澤依沮,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布涯贞,位于F島的核電站,受9級特大地震影響危喉,放射性物質發(fā)生泄漏宋渔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一辜限、第九天 我趴在偏房一處隱蔽的房頂上張望皇拣。 院中可真熱鬧,春花似錦薄嫡、人聲如沸氧急。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吩坝。三九已至,卻和暖如春哑蔫,著一層夾襖步出監(jiān)牢的瞬間钉寝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工闸迷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嵌纲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓稿黍,卻偏偏與公主長得像疹瘦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巡球,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容