5月份Github上熱門的十個Python項目
5 月份剛剛過去,之前看到了一篇介紹 5 月份的最熱機器學(xué)習(xí)項目,剛好看到 Mybridge AI 博客又發(fā)表了一篇 5 月份最熱的 Python Github 開源項目,同樣是在將近 230 個 Python 開源項目中選擇最熱門的前十個。
選擇的十個項目包含了 Debug 工具、刪除 Facebook 文章、無限云盤存儲空間、AI 水軍、并發(fā)運算工具、量化交易系統(tǒng)等等。
那么就來看看這十個項目吧!

第一名:PySnooper
這是一款調(diào)試代碼的工具,讓你不需要再通過采用 print 來定位錯誤發(fā)生的地方和原因。目前有 11000+ 星。
PySnooper 可以讓你不需要仔細(xì)選擇哪些行需要打印信息,只需要對目標(biāo)函數(shù)添加一行裝飾器,就可以知道很仔細(xì)看到函數(shù)的運行狀況,包括哪行運行、局部變量的變化等。
安裝方法很簡單,可以使用 pip 或 anaconda 兩種安裝方法:
- $ pip install pysnooper
或者
- $ conda install -c conda-forge pysnooper
一個使用例子如下,首先是需要導(dǎo)入 pysnooper ,然后想知道函數(shù) number_to_bits() 的運行情況,只需要添加 @pysnooper.snoop() 即可。
- import pysnooper
- @pysnooper.snoop()
- def number_to_bits(number):
- if number:
- bits = []
- while number:
- number, remainder = divmod(number, 2)
- bits.insert(0, remainder)
- return bits
- else:
- return [0]
- number_to_bits(6)
得到的輸出結(jié)果:
- Starting var:.. number = 6
- 15:29:11.327032 call 4 def number_to_bits(number):
- 15:29:11.327032 line 5 if number:
- 15:29:11.327032 line 6 bits = []
- New var:....... bits = []
- 15:29:11.327032 line 7 while number:
- 15:29:11.327032 line 8 number, remainder = divmod(number, 2)
- New var:....... remainder = 0
- Modified var:.. number = 3
- 15:29:11.327032 line 9 bits.insert(0, remainder)
- Modified var:.. bits = [0]
- 15:29:11.327032 line 7 while number:
- 15:29:11.327032 line 8 number, remainder = divmod(number, 2)
- Modified var:.. number = 1
- Modified var:.. remainder = 1
- 15:29:11.327032 line 9 bits.insert(0, remainder)
- Modified var:.. bits = [1, 0]
- 15:29:11.327032 line 7 while number:
- 15:29:11.327032 line 8 number, remainder = divmod(number, 2)
- Modified var:.. number = 0
- 15:29:11.327032 line 9 bits.insert(0, remainder)
- Modified var:.. bits = [1, 1, 0]
- 15:29:11.327032 line 7 while number:
- 15:29:11.327032 line 10 return bits
- 15:29:11.327032 return 10 return bits
- Return value:.. [1, 1, 0]
當(dāng)然,它還可以只監(jiān)控函數(shù)中的一部分代碼,還有其他的用法,具體可以到其 Github 上。
鏈接:
- https://github.com/cool-RR/pysnooper?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第二名:DeleteFB
一款用于刪除 Facebook 文章的工具,目前有 2224 星。
這款工具是基于 Selenium 實現(xiàn)的,因此作者認(rèn)為它比一些第三方 app 更加可靠,并且也不容易遭到 Facebook 的阻攔。
幾種安裝方法:
- # 1.Install from PyPI
- pip install --user delete-facebook-posts
- # 2.Clone repo and run
- pip install --user .
- # or
- pip install --user git+https://github.com/weskerfoot/DeleteFB.git
- # 3.Set up a Python virtualenv, activate it, and run
- pip install -r requirements.txt
其他的詳細(xì)介紹可以查看該 Github 項目。
鏈接:
https://github.com/weskerfoot/DeleteFB?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第三名:無限云盤存儲空間(UDS : Unlimited Drive Storage)
第三名是一個可以實現(xiàn)不需要占據(jù)空間但能上傳文件到谷歌云盤的一個工具,目前 3232 星。
根據(jù)它的介紹,實現(xiàn)這個功能主要是通過將二進(jìn)制文件分解成 base64 的格式,其實現(xiàn)的功能:
- 將文件上傳到谷歌云盤但不會占據(jù)存儲空間;
- 下載任意存儲的文件到本地電腦
具體實現(xiàn)的邏輯是:
- 谷歌文檔在谷歌云盤中是不占空間的
- 將二進(jìn)制文件采用 base64 編碼文件分解為谷歌文檔
- 編碼后的文件大小總是會大于源文件,而經(jīng)過 Base64 編碼的二進(jìn)制數(shù)據(jù)后的文件和源文件的比例大約是 4:3
- 單個谷歌文檔可以存儲大約一百萬字節(jié),這大約是 710 KB 大小的 base64編碼數(shù)據(jù)
- 嘗試采用多線程上傳文件,但沒有顯著提升速度
具體的配置和使用方法可以查看它在 Github 上的介紹。
鏈接:
https://github.com/stewartmcgown/uds?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第四名:eht-imaging
這是一個應(yīng)用在射電干涉測量方面的成像、分析、仿真軟件。目前有 5000+ 星。
具體來說,就是可以仿真和操縱 VLBI 數(shù)據(jù)并利用正則化的最大似然方法生成圖片的一個 Python 模塊。
鏈接:
https://github.com/achael/eht-imaging?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
官方文檔鏈接:
https://achael.github.io/eht-imaging/
第五名:YouTubeCommenter
應(yīng)用于 Youtube,利用 AI 技術(shù),基于視頻標(biāo)題生成評論的工具,目前有 159 星。
作者也說了目前該項目僅僅是作為一個參考,還不能真正應(yīng)用。
感覺如果技術(shù)真正成熟,這就是一個 AI 水軍,而且可以快速控制某些視頻的評論。
此外,這里還有作者的一個視頻介紹和演示,需要科學(xué)上網(wǎng)以及良好的英語聽力,視頻大約是 9 分鐘左右,大致簡單看了作者演示的效果,確實離真正可用還是有很大的距離。
鏈接:
https://github.com/HackerPoet/YouTubeCommenter?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第六名:stackprinter
這也是一個調(diào)試工具,目前有 900+ 星。
它會打印出錯代碼內(nèi)容以及這段代碼周圍的變量數(shù)值,這非常符合一個友好的交互的調(diào)試器:出錯的代碼位置,附近變量數(shù)值,以及這個函數(shù)調(diào)用這些參數(shù)的原因。
安裝方法很簡單:
- pip install stackprinter
更詳細(xì)的介紹可以查看其 Github。
鏈接:
https://github.com/cknd/stackprinter?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第七名:Pykka
Pykka 是對并發(fā)運算中的角色模型(actor model)的 python 版實現(xiàn)庫,目前有 763星。
具體細(xì)節(jié)和使用例子可以查看官方文檔:
- https://www.pykka.org/en/latest/
安裝方法如下:
- pip install pykka
鏈接:
https://github.com/jodal/pykka?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第八名:QTSSTM4
一個數(shù)字貨幣的量化交易系統(tǒng)。目前有 244 星。
這個系統(tǒng)對于初學(xué)者可能比較復(fù)雜,作者建議先看看下面三份資料:
- https://github.com/xiaoyao153379/BakTst_Org)
- https://github.com/xiaoyao153379/BakTst_Trd)
- https://github.com/xiaoyao153379/scripts
詳細(xì)的介紹查看 Github。
鏈接:
https://github.com/xiaoyao153379/QTSSTM4?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第九名:Maildown
一個簡單的發(fā)送郵件的命令行接口,目前有 521 星。
Maildown 是基于亞馬遜的 SES 服務(wù),它每個月可以免費發(fā)送 62000 封郵件,可以滿足大部分人的需求。
因此,在使用 Maildown 之前需要先一個亞馬遜 AWS 的賬號,注冊地址:
然后也需要有一個 SES 賬戶:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html
安裝方法直接用
- pip install maildown
更詳細(xì)的介紹請查看 Github。
鏈接:
https://github.com/chris104957/maildown?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
第十名:modDetective
這是一個根據(jù)修改時間對文件進(jìn)行排序操作的工具,目前有 119 星。
目前這個工具還在繼續(xù)完善和優(yōu)化中,根據(jù)作者的說法,目前查找速度還是線性的,需要繼續(xù)優(yōu)化。
Github 有一個簡單演示的視頻。
鏈接: