近万个Python开源项目中精选Top34!
作者 | Mybridge
编译 | 仲培艺
出品 | CSDN(ID:CSDNNews)
【导语】踏着人工智能、区块链的东风,近年来一路“横冲直撞”的 Python 在实现了从小众语言到主流的完美转身后,一头扎进了 2019,依旧没有透出丝毫停下来的架势,反倒有些越烧越热的味道。本文将为你介绍 2019 年最值得关注的 34 个 Python 开源项目——Let's go!
在过去的一年里,Mybridge 比较了近 10000 个 Python 开源库,并从中挑选出最实用的 34 个工具来帮助你开发。
这些开源项目的平均 Star 数为3293,下面将把它们分为 8 类进行分享:
开源项目对程序员来说意义非凡,可以大大提升软件开发速度,让我们花些时间,一起来看看这些在可能被你错过了的 Python 开源项目吧。
Python Toolkit
1. Pipenv
Star 数:15710
GitHub:https://github.com/pypa/pipenv
介绍:Pipenv 是 Python.org 官方推进的 基于 pip 的 Python包管理工具,旨在将所有包管理工具(如 bundler、composer、npm、cargo、yarn 等)的优点集中应用于 Python 领域中的工具,对各个平台都有很好的支持。
2. Pyxel
Star 数:4884
GitHub:https://github.com/kitao/pyxel
介绍:一个用 Python 编写复古游戏的开发环境。
3. PyTest v3.5
Star 数:3631
GitHub:https://github.com/pytest-dev/pytest
介绍:一个非常成熟的全功能的 Python 测试框架,使编写小型测试变得容易,同时支持复杂的功能测试。
4. Poetry
Star 数:3228
GitHub:https://github.com/sdispater/poetry
介绍:让 Python 依赖管理和打包变得容易。
5. Loguru
Star 数:3048
GitHub:https://github.com/Delgan/loguru
介绍:一个 Python 日志记录库,使 Python 日志变得极端简单。
6. Faust
Star 数:2733
GitHub:https://github.com/robinhood/faust
介绍:Faust 是一个流处理库,用于构建 Python 流应用程序,将 Kafka 流中的思想移植到 Python 中。
7. Pampy
Star 数:2399
GitHub:https://github.com/santinic/pampy
介绍:优雅的 Python 模式匹配库——你梦寐以求的 Python 模式匹配。Pampy 相当小(150行),速度相当快,并且使代码更具可读性,更容易推理。
8. Pyre-check
Star 数:2242
GitHub:https://github.com/facebook/pyre-check
介绍:Facebook 开源的 Python 快速静态类型检查器。
9. Delorean
Star 数:1519
GitHub:https://github.com/myusuf3/delorean
介绍:Delorean 是 Python 里一个很方便的日期时间库,可以让人更简单省心的获取时间,不必受困于时间模块中的各种问题。
10. Cirq
Star 数:1394
GitHub:https://github.com/quantumlib/Cirq
介绍:是 Google 专为 NISQ 算法打造的框架,用于创建、编辑和调用嘈杂中型量子 (NISQ,Noisy Intermediate-Scale Quantum),允许开发者为特定的量子处理器编写量子算法。
11. Python-nubia
Star 数:1032
GitHub:https://github.com/facebookincubator/python-nubia
介绍:一款由 Python 编写的,用于建立命令行应用的轻型框架(命令行与交互式 shell 框架),由 Facebook 团队开发。
Web
12. Requests-HTML
Star 数:8995
GitHub:https://github.com/kennethreitz/requests-html
介绍:一个解析 HTML 的库
13. Bokeh
Star 数:8943
GitHub:https://github.com/bokeh/bokeh
介绍:一个 Python 交互式可视化库,支持在现代 Web 浏览器中对数据进行美观且有意义的可视化表示。
14. Vibora
Star 数:4665
GitHub:https://github.com/vibora-io/vibora
介绍:一个快速、异步且性感的 Python Web 框架。
15. Pywebview v2.0
Star 数:1208
GitHub:https://github.com/r0x0r/pywebview
介绍:一个webview 组件的轻量级跨平台原生封装,实现利用 Web 技术开发 GUI 应用,允许在它自己的专用窗口中显示 HTML 内容。
16. WhatWaf
Star 数:995
GitHub:https://github.com/Ekultek/WhatWaf
介绍:检测并绕过 Web 应用程序防火墙和保护系统。
17. Molten
Star 数:796
GitHub:https://github.com/Bogdanp/molten
介绍:一个用 Python 3.6 或更高版本构建 HTTP API 的迷你、可扩展、快速且高效的框架。
Terminal
18. Termtosvg
Star 数:7522
GitHub:https://github.com/nbedos/termtosvg
介绍:一款录制终端操作的命令行工具,它可以将终端会话录制成一个单独的用 Python 编写的 SVG 动画。
19. Asciinema v2.0
Star 数:6668
GitHub:https://github.com/asciinema/asciinema
介绍:Python 内置的终端会话记录器,能够在 Linux 等终端上进行录屏,并且录屏不生成视频文件,而是生成文字形式。
20. Termgraph
Star 数:2005
GitHub:https://github.com/mkaz/termgraph
介绍:在终端中绘制基本图形的 Python 命令行工具。
Code Editor
21. Black
Star 数:7629
GitHub:https://github.com/ambv/black
介绍:“不妥协”的 Python 代码格式化工具。之所以称之为“不妥协”是因为它检测到不符合规范的代码风格直接就帮你全部格式化好,根本不需要你确定,直接替你做好决定,因此速度也很快。
22. Algojammer
Star 数:2750
GitHub:https://github.com/ChrisKnott/Algojammer
介绍:是一个实验性的概念验证代码编辑器,用于在 Python 中编写算法。
23. Bowler
Star 数:879
GitHub:https://github.com/facebookincubator/bowler
介绍:一种用于在语法树级(syntax tree level)操纵 Python 的重构工具,可以实现安全而大规模的代码修改任务,同时保证生成的代码可以编译和运行。它提供了一个简单的命令行界面和流畅的 Python API 接口,用于在代码中进行复杂的代码修改。具体来说,Bowler 通过一系列选择器、过滤器和修改器来调用 Query API 接口实现脚本重构。使用现有的 API 可以进行许多简单的修改,但你也可以根据需要,自定义选择器、过滤器和修改器来构建更复杂的重构过程。
Debugging
24. Py-spy
Star 数:3479
GitHub:https://github.com/benfred/py-spy
介绍:一种由 Python 程序驱动的采样分析器,它允许可视化 Python 程序内容,而无需重新启动程序或以任何方式修改代码。它是用 Rust 语言编写的,运行速度快,计算成本极低,不需要在配置 Python 程序的进程中同时运行,也不会以任何方式中断当前正在运行的程序,这意味着 Py-Spy 可以安全地用于 Python 代码的生成。此外,Py-Spy 适用于 Linux,OSX 和 Windows 等平台,并支持在最新版本的 CPython 解释器上进行分析工作。
25. Birdseye
Star 数:1068
GitHub:https://github.com/alexmojaki/birdseye
介绍:一个使用 AST 的快速、便捷、表达式为中心的图形化 Python 调试器。
26. Icecream
Star 数:728
GitHub:https://github.com/gruns/icecream
介绍: 一个用于甜美和奶油色打印调试的小库。
Compiler
27. Transcrypt
Star 数:1561
GitHub:https://github.com/qquick/Transcrypt
介绍:一款把 Python(Python 3.7)编写的代码转换成 JavaScript 的工具,精简、快速、开放。让你告别手写繁复的 JavaScript 代码,使用相对简明清晰的Python代替这一工作。
28. Pyodide
Star 数:1041
GitHub:https://github.com/iodide-project/pyodide
介绍:编译成 WebAssembly 的 Python 科学栈。
Data Related
29. Voluptuous
Star 数:1368
GitHub:https://github.com/alecthomas/voluptuous
介绍:虽然顶着个 Voluptuous(性感丰满的)的名字,但就是一个 Python 数据验证库。
30. Botflow
Star 数:933
GitHub:https://github.com/kkyon/botflow
介绍:用于数据管道工作(如网络爬虫、机器学习、量化交易等等)的 Python 快速数据驱动编程框架。
31. Fast-Pandas
Star 数:798
GitHub:https://github.com/mm-mansour/Fast-Pandas
介绍:Pandas 中针对不同大小数据帧(DataFrame)的不同运算基准。
Chart
32. pywonderland:A Tour in the Wonderland of Math with Python(基于 Python 的数学仙境之旅)
Star 数:3172
GitHub:https://github.com/neozhaoliang/pywonderland
介绍:一组 Python 脚本,用于绘制漂亮的图形及模拟有趣的数学算法。
33. Chartify
Star 数:1817
GitHub:https://github.com/spotify/chartify
介绍:让数据科学家画图变得更轻松的 Python 库。
34. Hypertools v0.5
Star 数:1353
GitHub:https://github.com/ContextLab/hypertools
介绍:高维数据可视化&处理的 Python 工具包(数据降维&可视化工具)。
原文:https://medium.mybridge.co/34-amazing-python-open-source-libraries-for-the-past-year-v-2019-93d6ee11aceb
(本文为AI科技大本营转载文章,转载请联系作者)
◆
精彩推荐
◆
4月13-14日,CSDN将在北京主办“Python开发者日(2019)”,汇聚十余位来自阿里巴巴、IBM、英伟达等国内外一线科技公司的Python技术专家,还有数百位来自各行业领域的Python开发者,共同探讨Python在不同场景下的的应用优势和实战经验。即刻扫码抢购早鸟票,限量发售!
推荐荐阅读:
3.15曝光:40亿AI骚扰电话和11家合谋者
微软亚研院提出用于语义分割的结构化知识蒸馏 | CVPR 2019
Google又逆天:语音输入离线实时输出文字,仅占80MB!然而……
西工大开源拥挤人群数据集生成工具,大幅提升算法精度 | CVPR 2019
R和Python谁更好?这此让你「鱼与熊掌」兼得
10行Python,搭建一个游戏AI | 视频教程
云计算时代运维的出路在哪?
30岁的万维网活不长了! 蒂姆·伯纳斯·李要借去中心化亲手杀死它, 你再也不用担心...
互联网裁员潮亲历者:那些阵痛、挣扎与去向
❤点击“阅读原文”,查看历史精彩文章。
相关文章:

【linux】Valgrind工具集详解(十三):Helgrind(线程错误检测器)
一、概述 Helgrind用于检测C、C ++和Fortran程序中使用符合POSIX标准的线程函数造成的同步错误。 POSIX中关于线程的主要抽象描述有:共享公共地址空间的一组线程、线程创建、线程连接、线程退出、互斥(锁)、条件变量(线程间事件通知)、读写器锁、自旋锁、信号量和线程等…
vivado烧写bin文件到flash 中
点击 bitstream setting ,将 bin_file 勾上,点击 OK。 2)点击 generate bitstream ,生成 bit 文件和 bin 文件 3)点击 open hardware manager,连接板子。 4)选中芯片,右键如下操作。…

如何使dropship第三方销售是基于发货数量,而不是基于LIV发票校验的数量
不好意思,我何慕雄这两天说drop ship第三方销售已经是说烂了,但是,还是要得继续说,毕竟这个问题也是挺复杂的。 什么是第三方销售呢?第三方销售是指客户向我们下销售订单,而我们没有货,但是根据…

图神经网络综述:方法及应用 | Deep Reading
整理 | 耿玉霞,浙江大学直博生。研究方向:知识图谱,零样本学习,自然语言处理等。来源 | 开放知识图谱(公众号id:OpenKG-CN)责编 | Jane近日,清华刘知远老师组在 arXiv 上发表了一篇关…

【linux】top命令详解
1、参数详解 $ top -helpprocps-ng version 3.3.9 Usage:top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]-b:打印所有程序 -c:以命令行的形式显示程序名 -d:设置刷新间隔时间 -h:显示帮助 -H…

关于近期的总结
北京的黄金三月,应去年的计划,年初换工作,这是回来之后找工作的第四个周,目前收到offer一份,在昨天之前我还深深的觉得自己真的是失败,菜的不行,去年一年的努力都努力到哪里去了,越想…

让QQ按时上下班
朋友在临近的一所幼儿园当头儿,说最近发现有小老师在上班期间用QQ聊天,影响孩子的看护,问我有没有办法限制她们在上班期间聊天,顺便看看他们上班期间都在干什么,我说试试吧,估计得花钱。 说干就干ÿ…

算法面试经常需要你手写的三个排序算法(Python语言)
作者 | 程序员小吴来源 | 五分钟学算法(ID: CXYxiaowu)1. 归并排序1.1 算法步骤申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;设定两个指针,最初位置分别为两个已经排序序列的起始…

【linux】Valgrind工具集详解(十三):DRD(线程错误检测器)
一、概述 多线程编程需要注意的问题: 数据竞争;锁竞争;POSIX线程API使用不当;死锁; 二、使用 1、例子main.c源码 #include <stdio.h> #include <pthread.h> #include <sys/types.h> #include <unistd.h>

前段技术学习网站
1. 七天学会nodejs http://nqdeng.github.io/7-days-nodejs/ 2. Web 常用UI库 kissy https://www.oschina.net/p/kissy 3. 通用 WEB 框架 Webx https://www.oschina.net/p/webx 转载于:https://www.cnblogs.com/mengjianzhou/p/8610793.html

性能测试分析之带宽瓶颈的疑惑
第一部分, 测试执行 先看一图,再看下文 这个当然就是压力过程中带宽的使用率了,我们的带宽是1Gbps的,合计传输速率为128MB/s,也正因为这个就让我越来越疑惑了,不过通过压力过程中的各项数据我又不得不相信。…

心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现
作者 | 知凡,个人公众号:林木蔚然读书会(ID:EspressoOcean),知乎ID:Uno Whoiam本文授权转载自知乎本文结构简单扫盲什么是去马赛克什么是超分辨率《Deep Residual Network for Joint Demosaicing and Super…

【linux】Valgrind工具集详解(十四):Cachegrind(缓存和分支预测分析器)
一、概述 Cachegrind,它模拟CPU中的一级缓存I1,Dl和二级缓存,能够精确地指出程序中cache的丢失和命中。如果需要,它还能够为我们提供cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数。这对优化程序有很大的帮助。 Cachegrind模拟程…

使用mvc框架搭建跟人站点
1、使用工具 vs 、iis 2、新建一个ASP.net mvc 项目。并写好必要的代码 3、解决方案管理器,项目右键、发布 4、 创建配置文件 弹出网站发布设置面板,点击自定义,创建新的发布配置文件: 输入你自己定义的配置文件名(这里随便输入&…

GitHub上7000+ Star的Python常用代码合集
作者 | 二胖并不胖来源 | 大数据前沿(ID:bigdataqianyan)今天二胖给大家介绍一个由一个国外小哥用好几年时间维护的Python代码合集。简单来说就是,这个程序员小哥在几年前开始保存自己写过的Python代码,同时把一些自己比较常用的代…

MIS通用管理组件_通用管理组件V2.1.0发布
MIS通用管理组件是一个基于.NET4.0的MIS微型框架,实现单点登录,MIS类管理系统集群化管理配置,操作权限细化,数据集权限逐级授权;提供C/S代码生成器,丰富的类库;提供全部相关的源代码,…
python 十大经典排序算法
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序…

【linux】Valgrind工具集详解(十五):Callgrind(性能分析图)
一、概述 1、Callgrind Callgrind用于记录程序中函数之间的调用历史信息,对程序性能分析。默认情况下,收集的数据包括执行的指令数,它们与源码行的关系,函数之间的调用者、被调用者关系以及此类调用的数量。可选项是,对高速缓存模拟和分支预测(类似于Cachegrind)。 2…

WCF服务重构实录(上)
项目需求 之前的项目中采用了WCF,绑定模式选择的是netTcpBinding,宿主选择了控制台方式,主要考虑两方面优点: 方便管理宿主的生命周期提升服务性能但是在实际的开发过程中产生了许多问题,比如: 调试项目时必…

【Qt】QTest:编译Qt单元测试程序
一、使用方法 1、测试程序源码 TestQString.pro QT += testlib QT -= gui TARGET = tst_TestQStringTest CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += tst_TestQStringTest.cpp DEFINES += SRCDIR=\\\"$$PWD/\\\"tst_Test…

1/10个iPhone Xs = 英伟达最便宜AI计算机,这是唯一的“核弹”?
整理 | 一一、阿司匹林出品 | AI科技大本营(ID:rgznai 100)北京时间 3 月 19 日 8 点左右,在美国加州圣何塞的圣何塞大学活动中心,第十届 GTC 大会的主会结束。与往年相比,尽管 99 美元的 AI 计算机备受关注࿰…

Python链接MySQL
本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用。 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 Django中也可以使用PyMySQL连接MySQL数据库。 PyMySQL安装 使用pycharm安装PyMySQL 点击File-->右…

利用sendEmail-v1.55转发邮件
设置: /sendEmail-v1.55/sendEmail -f testtest.com -t 532126277qq.com -s s.test.com -xu testtest.com -xp 123456789 -a 文件的路径 -u 主题 -m 内容转载于:https://blog.51cto.com/holy2010/537968

【Git】git系统学习(一):常用指令
1、配置工具 $ git config --global user.name "[name]"设置用户名 $ git config --global user.email "[email address]"设置邮箱 $ git config --global color.ui auto自动配置命令行的输出颜色 $ git config --global color.ui true全部打开颜色配置…

腾讯裁撤中层干部,拥抱年轻人
据 36Kr 最新报道,数名消息人士证实,2018 年 12 月内部员工大会后,腾讯开始裁撤一批中层干部。整个腾讯大概有两百多名中干,此轮调整比例约为10%,有战略发展部的腾讯员工认为,实际甚至超过了这个比例。截止…

cmder里ls、pwd、自定义的alias等一系列命令都无法使用
win10下cmder很多命令history pwd无法使用,ls字体也没有颜色显示,其根本原因是win10下cmd控制台版本问题,切换回老版本就OK了 转载于:https://www.cnblogs.com/hdk1993/p/8620799.html

文件操作01 - 零基础入门学习C语言60
第十一章:文件操作01 让编程改变世界 Change the world by program C文件概述 所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执…

iPad mini时隔四年更新,搭载A12芯片,起售价2999
整理 | 非主流出品 | AI科技大本营(公众号id:rgznai100)距离苹果的春季发布还有一周,但就在昨天,苹果毫无征兆地给广大果粉来了一场预热。3 月 18 日下午,苹果官网进行更新,悄悄地推出了两款新品…

【Qt】通过QtCreator源码学习Qt(一):pro文件
1、学习目的 学习pro文件的语法规则,这在跨平台项目中会经常用到。和条件编译相似,在pro中可以根据平台选择不同的编译模块、文件,还可以向源码中传递变量等。 2、学习方法 通过学习QtCreator源码中的pro文件,来掌握pro文件语法规则,下面以qtcreator.pro文件为例,先看…

TCP和UDP相关记录
有关于计算机网络的知识,准确来说我也忘得差不多了,现在要开始找实习了。努力从新学一下,记录在这里以防丢失。 --------------------------------------------------------- 首先对于网络层次有很多种分法。大致有7层结构、5层结构、4层结构…