Python開發語言迅速進入人們的視線,可以說離不開人工智能的推動,大家都在說python有強大的庫,開源的庫,今天就以豆瓣為例,嘮嘮python那些神奇的庫。
豆瓣一直是中國Python領域的領軍企業, 同時也是開源事業的熱心參與者。
總結了一下豆瓣16大開源庫,拿走不謝!
1. pymesos
Mesos調度器和執行者的純Python實現
2. DPark
Dpark是國內豆瓣公司根據Spark進行的克隆版本的實現
DPark 是一個類似MapReduce 的基於Mesos(Apache 下的一個集群管理器,提供了有效的、跨分佈式應用或框架的資源隔離和共享等功能)的集群並行計算框架(Cluster Computing Framework),DPark 是Spark 的Python克隆版本,是一個Python 實現的分佈式計算框架,可以非常方便地實現大規模數據處理和低延時的迭代計算。該計算框架類似於MapReduce,但是比其更靈活,可以用Python 非常方便地進行分佈式計算,並且提供了更多的功能,以便更好地進行迭代式計算。DPark 由國內的豆瓣公司開發實現和負責維護,據豆瓣公司的描述,目前豆瓣公司內部的絕大多數數據分析都使用DPark 完成,整個項目也正趨於完善。
3. Paracel
帶有參數服務器的分佈式訓練框架, 為很多機器學習問題而設計。
Paracel是一個基於參數服務器通信模型的分佈式訓練框架。參數服務器可以被理解成一個全局分佈式的key-value存儲,用來存儲待訓練的模型。同時,參數服務器還能通過用戶定義的update函數進行分佈式計算,這時它與mapreduce系統中的reducer很類似。
4. code
豆瓣內部的代碼管理及部署平臺, 可以理解為豆瓣內部的Douban App Engine.
5. greenify
使得使用了c代碼的Python模塊兼容gevent
6. douban-quixote
豆瓣版的quixote, 一個Python的Web開發框架
Quixote的優點:簡單,Quxiote的全部代碼量為7000行左右,而且包含了大量的註釋,如果去掉註釋,則只有大約2500行代碼。這也是我選擇Quixote來學習Python的原因,因為你能容易通過閱讀代碼看到Quxiote做了什麼。
高效,這一方面得益於Python語言本身的特點和Quxiote簡單的架構,另一方面得益於用PTL模板。
安全,這也得益於Quxiote的簡單,使得我們能很好的控制框架,並且它提供了一些HTML輸出方法,保證了HTML輸出的安全。
7. beansdb
一個分佈式鍵值對存儲系統.
Beansdb的CAP特點表現為:
1)分佈式的,伸縮性比較好(P)
2)最終一致的(C),可能出現短時間內的數據不一致。
3)高可用的(A),部分節點出現故障不影響服務。
Beansdb在豆瓣內部有著廣泛的使用,比如圖片文件、小媒體文件、profile、properties等等。Beansdb不像GFS等分佈式存儲系統,一般不用於存儲百兆以上單位的大數據。
8. misaka
一個markdown解析庫的Python綁定
9. sina
一個git SmartHTTP服務器的WSGI實現
10. libmc
一個輕量級的memcached客戶端
11. memkeys
memkeys是tumblr開源的類似top的工具,可用於實時查看memcached的key使用情況。
12. brownant
一個輕量級的網絡數據抽取框架
13. twemproxy
Twemproxy 也叫 nutcraker。是 Twtter 開源的一個 Redis 和 Memcache 代理服務器,主要用於管理 Redis 和 Memcached 集群,減少與Cache 服務器直接連接的數量。
14. linguist
編程語言監測工具
15. CaoE
當父進程死了, 殺死所有的子進程
16. pygit2
Pygit2是對libgit2的Python封裝,提過簡潔的接口訪問對象中的各種屬性,執行對倉庫的各種操作。libgit2是Git的共享程序庫,相對於作為一個獨立程序應用的Git,libgit2去掉了其中複雜的優化和非核心的功能,更簡單,更純粹。
看完這個列表, 頓時有一種豆瓣把開源產品都Python融化了的感覺。 有沒有心曠神怡,如獲至寶呢?
這裡更多幹貨,跟多趣事等你來(關注:交大數字研究院)
閱讀更多 交大全棧智能工程師 的文章