2018年Python值得關注的開源庫、工具和開發者
1、開源庫
Web 領域:Sanic
https://github.com/channelcat/sanic
這個庫的名字和之前一個很火的梗有關,有人在 youtube 上畫 Sonic 那個藍色小人,結果一本正經的畫出了下面這貨,給它起名叫 Sanic,還配了一句話是 Gotta go faster.
這個庫和 Flask 類似,但是比它快很多,速度能在測試中達到每秒 36000 次請求。在2017年的 Star 增長數幾乎是翻了一倍。Gotta go faster!
環境與包管理:Pipenv
https://github.com/pypa/pipenv
這個庫相當于是環境管理和包管理二合一,由 Kenneth Reitz (Requests 的作者 )編寫,現在移交給 Python 官方來維護,提供比 pip 體驗更好的開發包管理。它的 Slogon 是Python Development Workflow for Humans,用來解決各種環境不一致、安裝包的問題。
爬蟲:Requestium
https://github.com/tryolabs/requestium
現在反爬蟲技術越來越厲害,常見的請求 + 解析爬蟲隨著頻率變大和前端開發的復雜化變得并不是那么奏效。Requestium 的好處是,結合了 Chrome 59 以后的 headless 無頭特性(代替了 phantomjs)。雖然效率稍微低一點,但是穩,前端渲染的網頁也可以爬取解析。是 Requests, Selenium 和 Parsel 的結合體。
深度學習:Caffe2
https://github.com/caffe2/caffe2
是一個深度學習的庫,優勢是它是由 Facebook 團隊來維護的。可能深度學習方面大家聽得最多的是 Tensorflow,但 Caffe2 學習起來更簡單輕量,并且它的背景能支持它有一個健壯的發展。
文本處理:FlashText
https://github.com/vi3k6i5/flashtext
這個庫的開發者在 medium 上發了一篇文章,標題是:Regex was taking 5 days to run. So I built a tool that did it in 15 minutes. (正則要花5天時間才能完成,所以我做了個工具在15分鐘內搞定)。這個庫可以快速進行大規模語料庫的文本搜索與替換。當關鍵詞數量>500 的時候,FlashText 的搜索速度開始超過正則。
2、工具
***終端:Upterm
https://github.com/railsware/upterm
其實本來想推薦 fish 或者 zsh,但其實這兩個我也主要是貪圖自動補全這個特性。最近在用的這個 Upterm 其實很簡單好用,它是一個全平臺的終端,可以說是終端里的 IDE,有著強大的自動補全功能。之前的名字叫 BlackWindow,有人跟他說這個名字不利于社區推廣,改名叫 Upterm 之后現在已經17000+ Star了。
交互式解釋器:Ptpython
https://github.com/jonathanslenders/ptpython
一個交互式的 Python 解釋器。支持語法高亮、提示甚至是 vim 和 emacs 的鍵入模式。其實我們在課程里提供的在線終端也內置了 ptpython。
包管理必備:Anaconda
https://anaconda.org/
真的要強烈推薦 Anaconda ,它能幫你安裝好許多麻煩的東西,包括: Python 環境、pip 包管理工具、常用的庫、配置好環境路徑等等。這些事情小白自己一個個去做的話,容易遇到各種問題,帶來挫敗感。
如果你想用 Python 搞數據方面的事情,就安裝它就好了,它甚至開發了一套 JIT 的解釋器 Numba。所以 Anaconda 有了 JIT 之后,對線上科學計算效率要求比較高的東西也可以搞了。
編輯器:Sublime3
https://www.sublimetext.com/
無意引發編輯器大戰,小白的話當然還是要從 PyCharm 開始上手,但有時候寫一些輕量的小腳本,就會想用輕量級一點的工具。
今年用了一圈各種編輯器,發現 Sublime 更新了真·***·三·零版本之后,很多地方都有了極大的提升(尤其是大家比較關心的顏值),并且用起來比原來還要簡單。配合安裝 Anaconda 或 CodeIntel 插件 ,就可以讓 Sublime 擁有近乎 IDE 的體驗。
另外我覺得有一個對于強迫癥很重要的,就是 Sublime 的字體顏色渲染,像 VSCode Atom 類 的編輯器我總會覺得顏色會有點發烏、不鮮艷,就像在 PS 做的圖拿到瀏覽器里會不一樣,長時間看會不舒服甚至想吐……
前端在線編輯器:CodeSandbox
https://codesandbox.io/
雖然這個不算是 Python 開發工具,但如果后端工程師想寫前端的話,這個在線編輯器太方便了,簡直是節省了后端工程師的生命啊!不用安裝 npm 的幾千個包了,它已經在云端完成了,采讓你直接就可以上手寫代碼、看效果。對于 React、Vue 這些主流前端框架都支持。
3、開發者