5 月份刚刚过去,之前看到了一篇介绍 5 月份的最热机器学习项目,刚好看到 Mybridge AI 博客又发表了一篇 5 月份最热的 Python Github 开源项目,同样是在将近 230 个 Python 开源项目中选择最热门的前十个。
选择的十个项目包含了 Debug 工具、删除 Facebook 文章、无限云盘存储空间、AI 水军、并发运算工具、量化交易系统等等。
那么就来看看这十个项目吧!
第一名:PySnooper
这是一款调试代码的工具,让你不需要再通过采用 print
来定位错误发生的地方和原因。目前有 11000+ 星。
PySnooper
可以让你不需要仔细选择哪些行需要打印信息,只需要对目标函数添加一行装饰器,就可以知道很仔细看到函数的运行状况,包括哪行运行、局部变量的变化等。
安装方法很简单,可以使用 pip
或 anaconda
两种安装方法:
- $ pip install pysnooper
- 或者
- $ conda install -c conda-forge pysnooper
- 复制代码
一个使用例子如下,首先是需要导入 pysnooper
,然后想知道函数 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)
- 复制代码
得到的输出结果:
- 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]
- 复制代码
当然,它还可以只监控函数中的一部分代码,还有其他的用法,具体可以到其 Github 上。
链接:
第二名:DeleteFB
一款用于删除 Facebook 文章的工具,目前有 2224 星。
这款工具是基于 Selenium
实现的,因此作者认为它比一些第三方 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
- 复制代码
其他的详细介绍可以查看该 Github 项目。
链接:
第三名:无限云盘存储空间(UDS : Unlimited Drive Storage)
第三名是一个可以实现不需要占据空间但能上传文件到谷歌云盘的一个工具,目前 3232 星。
根据它的介绍,实现这个功能主要是通过将二进制文件分解成 base64
的格式,其实现的功能:
- 将文件上传到谷歌云盘但不会占据存储空间;
- 下载任意存储的文件到本地电脑
具体实现的逻辑是:
- 谷歌文档在谷歌云盘中是不占空间的
- 将二进制文件采用
base64
编码文件分解为谷歌文档 - 编码后的文件大小总是会大于源文件,而经过
Base64
编码的二进制数据后的文件和源文件的比例大约是4:3
- 单个谷歌文档可以存储大约一百万字节,这大约是 710 KB 大小的
base64
编码数据 - 尝试采用多线程上传文件,但没有显著提升速度
具体的配置和使用方法可以查看它在 Github 上的介绍。
链接:
第四名:eht-imaging
这是一个应用在射电干涉测量方面的成像、分析、仿真软件。目前有 5000+ 星。
具体来说,就是可以仿真和操纵 VLBI 数据并利用正则化的最大似然方法生成图片的一个 Python 模块。
链接:
官方文档链接:
第五名:YouTubeCommenter
应用于 Youtube,利用 AI 技术,基于视频标题生成评论的工具,目前有 159 星。
作者也说了目前该项目仅仅是作为一个参考,还不能真正应用。
感觉如果技术真正成熟,这就是一个 AI 水军,而且可以快速控制某些视频的评论。
此外,这里还有作者的一个视频介绍和演示,需要科学上网以及良好的英语听力,视频大约是 9 分钟左右,大致简单看了作者演示的效果,确实离真正可用还是有很大的距离。
链接:
第六名:stackprinter
这也是一个调试工具,目前有 900+ 星。
它的一个使用结果如下图所示,会打印出错代码内容以及这段代码周围的变量数值,这非常符合一个友好的交互的调试器:出错的代码位置,附近变量数值,以及这个函数调用这些参数的原因。
安装方法很简单:
- pip install stackprinter
- 复制代码
更详细的介绍可以查看其 Github。
链接:
第七名:Pykka
Pykka 是对并发运算中的角色模型(actor model)的 python 版实现库,目前有 763 星。
具体细节和使用例子可以查看官方文档:
安装方法如下:
- pip install pykka
- 复制代码
链接:
第八名:QTSSTM4
一个数字货币的量化交易系统。目前有 244 星。
整个系统的结构如下图所示:
这个系统对于初学者可能比较复杂,作者建议先看看下面三份资料:
详细的介绍查看 Github。
链接:
第九名:Maildown
一个简单的发送邮件的命令行接口,目前有 521 星。
Maildown
是基于亚马逊的 SES 服务,它每个月可以免费发送 62000 封邮件,可以满足大部分人的需求。
因此,在使用 Maildown
之前需要先一个亚马逊 AWS 的账号,注册地址:
然后也需要有一个 SES 账户:
docs.aws.amazon.com/ses/latest/…
安装方法直接用
- pip install maildown
- 复制代码
更详细的介绍请查看 Github。
链接:
第十名:modDetective
这是一个根据修改时间对文件进行排序操作的工具,目前有 119 星。
目前这个工具还在继续完善和优化中,根据作者的说法,目前查找速度还是线性的,需要继续优化。
Github 有一个简单演示的视频。
链接:
这就是作者整理出来的 5 月份 Github 上最热的十个 Python 项目,往届其他 Python、机器学习等热门项目也可以查看一下 Github:
或者网站:
欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!
往期精彩推荐
机器学习系列
- 初学者的机器学习入门实战教程!
- 模型评估、过拟合欠拟合以及超参数调优方法
- 常用机器学习算法汇总比较(完)
- 常用机器学习算法汇总比较(上)
- 机器学习入门系列(2)--如何构建一个完整的机器学习项目(一)
- 特征工程之数据预处理(上)