Django 依然是 Python 開發(fā)者值得信賴的庫 解藻。然而老充,在 2016 年幾個還不太知名的庫引起了 Python 開發(fā)者的關(guān)注。在這篇博文中舆逃,我向大家揭示 7 個 Python 類庫蚂维,其中不包括像 Django,F(xiàn)lask 等已廣為熟知的庫路狮,這些類庫在 2017 年可能值得 Python 開發(fā)者參考虫啥。
#1 Arrow
移動應(yīng)用程序無處不在,而且全球人類都參與其中 - 無論是游戲奄妨,社交媒體涂籽,健康監(jiān)控或其他。然而砸抛, Python 的標(biāo)準(zhǔn)數(shù)據(jù)/時間庫的問題讓它很難滿足現(xiàn)代應(yīng)用的需求评雌,這些應(yīng)用的目標(biāo)受眾生活在不同的地區(qū)和國家树枫。 Arrow 就是克服這個問題的類庫之一。它擁有簡化創(chuàng)建景东,格式化砂轻,操作和轉(zhuǎn)換數(shù)據(jù),以及時間和時間戳的功能斤吐。
該庫解決了 Python 2 或 3 的支持 datetime 類型的需求搔涝。使用 Arrow,開發(fā)人員可以輕松地將一個時區(qū)轉(zhuǎn)換為另一個時區(qū)和措。此外庄呈,Arrow 的日期,時間和日歷模塊打開了一站式服務(wù)的國際化應(yīng)用程序的大門派阱。
#2 TensorFlow
2015 年 11 月由 Google 推出的 TensorFlow 是一個用于數(shù)值計算的開源軟件庫诬留。 自 TensorFlow 的推出才過去一年多的時間,但是這個庫已經(jīng)在 Python 開發(fā)人員中獲得了相當(dāng)大的人氣贫母。 事實上文兑, TensorFlow 是 最時髦 GitHub Python 資源庫 之一。
該庫可以在桌面颁独,服務(wù)器或移動設(shè)備中通過單個 API 使用運行在 GPU 和 CPUs 上的數(shù)據(jù)流圖能力彩届。 TensorFlow 最初由 Google 機器智能研究機構(gòu)的研究人員和工程師開發(fā),用于機器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)研究誓酒。 雖然 TensorFlow 在機器學(xué)習(xí)社區(qū)中掀起了一些小的波瀾,但它已經(jīng)被證明非常適合生產(chǎn)應(yīng)用程序贮聂。
#3 Zappa
最開始的時候是由 AWS Lambda 帶來了無服務(wù)架構(gòu)靠柑。而 Zappa 則被認(rèn)為是改進了的 Python web 應(yīng)用部署的程序。 Rich Jones 是 Zappa 的主要作者吓懈,并且是 Gun.io 的 CTO歼冰, 他在一次采訪中說道 :“我相信無服務(wù)架構(gòu)(這意味著,系統(tǒng)沒有任何永久基礎(chǔ)設(shè)施)是網(wǎng)絡(luò)應(yīng)用的未來”耻警。
至于 Zappa隔嫡,它讓所有 Python WSGI 的應(yīng)用在 AWS Lambda + API 網(wǎng)關(guān)上的部署變得輕而易舉。在 VPS 服務(wù) (類似 Linode 甘穿,PaaS服務(wù)的 Heroku )上擺脫依賴庫需要花費成百上千的美元腮恩。簡單來說,我們可以說 Zaapa 允許在云上以微服務(wù)部署温兼,不會有任何與服務(wù)器管理相關(guān)的麻煩事秸滴。Zappa 同樣也是很快的,可擴展的募判。
#4 Peewee
Peewee 是 Python 生態(tài)中簡單的荡含,富有表現(xiàn)力的 ORM 咒唆,它支持 SQLite,MySQL 和 PostgreSQL释液。數(shù)據(jù)庫經(jīng)常需要為應(yīng)用去使用擴展的數(shù)據(jù)全释。不過,通過 ad hoc 連接串去 get 和 set 數(shù)據(jù)庫中的數(shù)據(jù)是一項非常有挑戰(zhàn)的任務(wù)误债。這種情況下恨溜,Peewee 就可以幫很大的忙了。這個庫對于開發(fā)者和數(shù)據(jù)庫工程師都是安全的找前,使用它可以以程序化的 Python 類來直觀地使用數(shù)據(jù)庫資源糟袁。
開發(fā)者們以前用 SQLAlchemy 已經(jīng)創(chuàng)建了一個數(shù)據(jù)庫,應(yīng)該會覺得使用 Peewee 創(chuàng)建數(shù)據(jù)庫是更容易的躺盛。另外项戴,Peewee 一直以來都適用于 Flask web 框架。
#5 Sanic + uvloop
Sanic 是一個與 Flask 類似槽惫,基于
uvloop 的 web 框架周叮,它能讓 Python 更快速。Sanik界斜,是基于 Python 3.5 設(shè)計的仿耽,它允許開發(fā)者在 async/await 語法上建立定義異步函數(shù)。在 Sanic 之前各薇,Python 沒有辦法做到如此之快项贺。uvloop 服務(wù)作為一個極其快速的庫,順其自然地替代了異步默認(rèn)事件的循環(huán)峭判。
Sanik 使得開發(fā)者能夠在 Python 中編寫異步應(yīng)用开缎,在這種方式下非常類似于 Node.js。但是通過 Sanic 作者的基準(zhǔn)測試林螃, uvloop 在處理超過每秒33k次請求時奕删,依然表現(xiàn)良好 ,這超過了 Node.js 的性能疗认。由于 Sanic 還很新完残,因此在不久的將來會有更多的改進和變更。你也可以到它的 開源庫中 做出貢獻横漏。
# 6 Bokeh
你可能知道 Python 在數(shù)據(jù)可視化方面的一些類庫谨设,比如 matplotlib 和 seaborn。然而绊茧,Bokeh 是一個專門設(shè)計可視化交互并用于現(xiàn)代的 Web 瀏覽器的展示铝宵。開發(fā)者可以利用 Bokeh 以類似于 D3.js 的方式創(chuàng)建一流的可視媒體。除此之外,你可以利用非常大的或者流式的數(shù)據(jù)集來擴展更強的表現(xiàn)交互的能力鹏秋。
你可以通過 Bokeh 創(chuàng)建可視化端點尊蚁,儀表盤和數(shù)據(jù)應(yīng)用。開發(fā)者也可以利用 Bokeh 處理通過其他類庫侣夷,比如 Matplotlib, Seaborn 和 ggplot 創(chuàng)建的可視化圖形横朋。Bokeh 也可以和 Jupyter Notebooks 很好的結(jié)合來用于研究領(lǐng)域。
#7 Blaze
Blaze 用于處理數(shù)據(jù)庫和分析查詢的陣列技術(shù)百拓。當(dāng)對一個大到我們的電腦內(nèi)存不能存儲的數(shù)據(jù)集進行分析時琴锭,NumPy 和 Pandas 往往不能派上用場。這時開發(fā)者經(jīng)常借助于 PostgreSQL衙传,MongoDB决帖,Hadoop,Spark 和磁盤外存儲系統(tǒng)(PyTables and BColz)等等蓖捶。
然而地回,理解每一個系統(tǒng)如何工作以及如何將數(shù)據(jù)整理成合適的形式是一個非常有挑戰(zhàn)性的工作。由于缺乏對于如何在新技術(shù)之間混合和遷移數(shù)據(jù)的認(rèn)識俊鱼,從數(shù)據(jù)分析中攫取有效的結(jié)論將是非常困難的刻像。Blaze 通過提供一個對不同種類數(shù)據(jù)庫技術(shù)統(tǒng)一的接口以及遷移數(shù)據(jù)抽象化處理來解決這個難題。Blaze 對于表達計算是一個好的選擇并闲。
盡管存在一些其他的不太知名但是有效的 Python 類庫细睡,如 Gym + Universe , Boto3 帝火, Hug 溜徙, Scrapy , Beautiful Soup 等等购公。我只能選擇這幾個以便這篇博客有一個結(jié)尾萌京。Python 開發(fā)者可以研究這些類庫看看是否符合他們的需要,再合理的選擇合適的類庫宏浩。