Python有哪些常用的库?这里将其总结如下,比如在数据清洗时使用到numpy和pandas包,数据可视化时使用matplotlib库,matplotlib库上手容易,更高级的学习seaborn库,seaborn库是改良matplotlib库的图表画法,如果创建有交互性的图表,可以使用Pyecharts库,还有一些其他在自动化办公中使用到的库。
Python的作用绝不仅仅只是做数据清洗和数据可视化,其作用还有很多,有许多意想不到的功能,可以高效的做数据处理、数据可视化,以及可以实现自动化办公,这里仅仅举例讲讲Python使用最多的几个包,欢迎大家补充,下面一起来学习。
1、Numpy
官网https://www.numpy.org.cn/
NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象,以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。
NumPy包的核心是 ndarray 对象。它封装了python原生的同数据类型的 n 维数组,为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。
NumPy的主要对象是同构多维数组。它是一个元素表,所有类型都相同,由非负整数元组索引。在NumPy维度中称为轴 。
2、Pandas
官网https://www.pypandas.cn/
Pandas 是 Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据,广泛应用于数据分析领域,Pandas 适用于处理与 Excel 表类似的表格数据,以及有序和无序的时间序列数据等。
Pandas 的主要数据结构是 Series(一维数据)和 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例,使用pandas进行数据分析流程包含数据整理与清洗、数据分析与建模、数据可视化与制表等阶段。
- 灵活的分组功能:(group by)数据分组、聚合、转换数据;
- 直观地合并功能:(merge)数据连接;
- 灵活地重塑功能:(reshape)数据重塑;
3、Matplotlib
官网https://www.matplotlib.org.cn/
Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
Matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能,只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等。
为了简单绘图,该 pyplot 模块提供了类似于MATLAB的界面,尤其是与IPython结合使用时,对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组功能来完全控制线型,字体属性,轴属性等。
4、Seaborn
官网http://seaborn.pydata.org/
Seaborn 是一个基于matplotlib的 Python 数据可视化库,它建立在matplotlib之上,并与Pandas数据结构紧密集成,用于绘制有吸引力和信息丰富的统计图形的高级界面。
Seaborn 可用于探索数据,它的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合以生成信息图,其面向数据集的声明式 API可以专注于绘图的不同元素的含义,而不是如何绘制它们的细节。
Matplotlib 拥有全面而强大的 API,几乎可以根据自己的喜好更改图形的任何属性,seaborn 的高级界面和 matplotlib 的深度可定制性相结合,使得Seaborn既可以快速探索数据,又可以创建可定制为出版质量最终产品的图形。
5、Pyecharts
官网https://pyecharts.org/#/
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
Pyecharts具有简洁的 API 设计,使用如丝滑般流畅,支持链式调用,囊括了 30+ 种常见图表,应有尽有,支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab,拥有高度灵活的配置项,可轻松搭配出精美的图表。
Pyecharts强大的数据交互功能,使数据表达信息更加生动,增加了人机互动效果,并且数据呈现效果可直接导出为html文件,增加数据结果交互的机会,使得信息沟通更加容易。
Pyecharts有着丰富的图表素材,支持链式调用,如下是使用Pyecharts的地理图表功能,空间上直观显示数据可视化效果。
6、wordcloud
绘制词云图,可以使用Python中的wordcloud库,首先,使用pip install wordcloud安装该库,导入文本数据后,创建一个WordCloud对象,设置词云图的背景颜色、宽度和高度,使用generate()方法将文本传递给词云对象,生成词云图,最后,使用imshow()方法将词云图显示出来,并使用axis()方法隐藏坐标轴。
7、Faker
Faker库是一个很好的模拟生成数据的库,在满足数据安全的情况下,使用Faker库最大限度的满足我们数据分析的测试需求,可以模拟生成文本、数字、日期等字段。
导入Faker库可以用来模拟生成数据,其中,locale="zh_CN"用来显示中文,如下生成了一组包含姓名、手机号、身份证号、出生年月日、邮箱、地址、公司、职位这几个字段的数据。
8、PySimpleGUI
为了将代码的运行过程增加交互式操作,这里使用PySimpleGUI库开发一个图形界面,其中,layout用于自定义窗口布局,window用于定义整体的窗口界面,while True: 循环运行,当满足特定的"事件"时,则返回具体的"值",从而实现人机交互功能。
如下将人机交互功能开发完毕,点击浏览文件,找到需要批量合并文件的文件夹目录,点击开始合并,即可输出结果,其中,values["文件路径"]输入的是需要合并Excel数据的文件路径,print打印出来的就是需要合并Excel数据的文件路径。
9、pipenv
交互式的命令开发完毕,如何分享给别人使用?或者是别人的电脑上没有安装Python也能正常使用数据合并功能?这里给大家介绍Python程序打包,使用虚拟环境进行打包,在命令行输入如下命令下载pipenv包。
使用快捷键Win+R键,然后输入CMD,输入pipenv shell命令,进入虚拟环境,没有虚拟环境的话会自动建立一个。
由于Python打包会将电脑安装的Python包全部打包,这里我们在虚拟环境中只安装Python程序涉及的模块,这样会减少打包的体积,注意xlrd==1.2.0下载低版本的包,默认安装的是高版本的,安装高版本的包在程序使用中会报错。
将带有交互式命令的数据合并代码导出为.py文件,在命令行输入如下的打包命令,指定具体的路径即可打包。
稍等几分钟,在Python的工作目录下看到一个dist文件,如果不知道自己的Python工作目录,可使用os.getcwd()命令查看。
该dist文件包含一个combine.exe程序,如下即为打包的程序。
10、pandasql
pandasql库可以在Python中写SQL,而且SQL语法在Python中完全支持,在Python中写SQL能够做到手写自如,导入pandasql库,SQL运行都需要借助pandasql库,我们使用的是sql.sqldf(""" *** """)命令,其中***就是你要写的SQL语句,写SQL不难,很容易入门,只要将SQL语句写入到括号内,即可实现数据查询。
导入pandasql库后,这里需要将电影的累计票房分为'超低票房'、'低票房'、'中等票房'、'高票房'、'超高票房',使用case when进行分组,以end结尾,成功实现在pandas中使用case when查询,查询结果如下所示。
什么?以上的这几个Python库还没学过瘾?如果你还想学习更多的Python库,这里推荐『数据分析实战训练营』,有专业的老师带着你学习,1V1进行学习指导,帮助你更好地掌握一项技能,现在是人工智能和大数据时代,掌握数据技能是职场人士所必须的技能,如果你想要提升自己,现在点击下方卡片即可参加,性价比极高!快戳卡片↓
更多回答
来源于 https://github.com/china-testing/python_cn_resouce python优秀常用库收集,谢谢点赞
- Table of Contents
- Python测试开发库
- 参考资料
- 测试开发
- Web UI测试自动化
- 移动测试自动化
- Windows UI测试自动化
- UI测试
- 性能测试
- 渗透测试
- 跨语言调用
- 测试框架
- Mock
- 其他测试工具
- 持续交付
- 测试工具对接
- awesome-python
- 管理面板(Admin Panels)
- 算法和设计模式(Algorithms and Design Patterns)
- 反病毒(Anti-spam)
- 资产管理(Asset Management)
- 音频(Audio)
- 认证(Authentication)
- 内置类增强(Built-in Classes Enhancement)
- 区块链(Blockchain)
- CMS(Content Management Systems)
- 缓存(Caching)
- 自动聊天工具(ChatOps Tools)
- 代码分析和lint(Code Analysis)
- 命令行工具(Command-line Tools)
- 命令行程序开发( Command-line Application Development)
- 生产力工具(Productivity Tools)
- 兼容性(Compatibility)
- 计算机视觉(Computer Vision)
- 并发和并行及异步与网络(Concurrency and Parallelism)
- 配置(Configuration)
- 加密(Cryptography)
- 数据分析(Data Analysis)
- 数据验证(Data Validation)
- 数据可视化(Data Visualization)
- 数据库(Database)
- 数据库驱动(Database Drivers)
- 日期和时间(Date and Time)
- 调试工具(Debugging Tools)
- 深度学习(Deep Learning)
- DevOps工具(DevOps Tools)
- 分发(Distribution)
- 文档(Documentation)
- 下载器(Downloader)
- 电子商务(E-commerce)
- 编辑器插件(Editor Plugins and IDEs)
- 电子邮件(Email)
- 环境管理(Environment Management)
- 文件(Files)
- 外部函数接口(Foreign Function Interface)
- 表单(Forms)
- 函数式编程(Functional Programming)
- 图形用户界面(GUI)
- Game Development
- 游戏开发(Game Development)
- 地理位置(Geolocation)
- HTML操作(HTML Manipulation)
- HTTP
- 硬件(Hardware)
- 图像处理(Image Processing)
- 实现(Implementations)
- 交互式Python解释器(Interactive Interpreter)
- 国际化
- 作业调度(Job Scheduler)
- 日志(Logging)
- 机器学习
- MapReduce
- 微软Windows
- 杂项
- 自然语言处理(Natural Language Processing)
- 网络虚拟化(Network Virtualization)
- 网络(Networking)
- 动态消息
- ORM
- 关系型数据库
- NoSQL 数据库
- 其他
- 包管理(Package Management)
- 包仓库
- 重构(Refactoring)
- RESTful API
- RPC服务器(RPC Servers)
- 科学(Science)
- 搜索
- 序列化(Serialization)
- 无服务器框架(Serverless Frameworks
- 特殊文本格式处理(Specific Formats Processing)
- 通用
- Office
- Markdown
- YAML
- CSV
- 静态网站生成器(Static Site Generator)
- 标签(Tagging)
- 模板引擎(Template Engine)
- 文本处理(Text Processing)
- 通用
- Slugify
- 解析器
- 第三方 API(Third-party APIs)
- URL处理(URL Manipulation)
- Video
- WSGI 服务器(WSGI Servers)
- 网页内容提取(Web Content Extracting)
- 网络爬虫(Web Crawling)
- Web 框架(Web Frameworks)
- WebSocket
- 监控
- Services
- Continuous Integration
- Code Quality
- Resources
- Podcasts
- Websites
- Weekly
- 持续更新
- Websites
- Weekly
Python测试开发库
参考资料
https://github.com/vinta/awesome-python
https://github.com/atinfo/awesome-test-automation
https://westurner.github.io/wiki/awesome-python-testing
测试开发
Web UI测试自动化
-
PyAutoGUI - 跨平台GUI自动化Python模块。
-
Schemathesis - 用Open API / Swagger规范构建的Web应用程序进行基于属性的自动测试的工具。
-
splinter - web UI测试工具,基于selnium封装。 链接
-
selenium - web UI自动化测试。 链接 --推荐 文档参考
-
mechanize- Python中有状态的程序化Web浏览。链接
-
pyppeteer- chrome/chromium自动化。链接
-
selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 链接
-
hitch - 基于服务的应用程序的高级集成测试框架。链接
-
Needle - Css 自动化测试框架。链接
-
seleniumbase - 端到端自动化测试框架。链接
-
pytest_splinter - pytest spinter和selenium集成。 链接
-
Browsermob Proxy - Browsermob Proxy的python包装器。 链接
-
Selenium-Requests - 扩展Selenium WebDriver类以包含请求库中的请求函数,同时完成所有需要的cookie和请求头处理。链接
移动测试自动化
-
appium - 移动端UI自动化测试。 链接 --推荐
-
uiautomator- 安卓UI自动化测试。 链接
-
ATX - 智能手机自动化工具。支持iOS,Android,WebApp和游戏。 网易出品 链接 --推荐
-
uiautomator2- Android Uiautomator2 Python Wrapper。 链接 --推荐
-
facebook-wda Facebook WebDriverAgent Python Client Library (not official) 可用于IOS应用测试。 链接 --推荐
Windows UI测试自动化
-
Winium.Desktop - 开源测试自动化工具,用于基于WinForms和WPF平台自动测试Windows应用程序,基于Selenium远程WebDriver实现。 链接
-
pyautogui- 跨平台的UI自动化工具,控制鼠标和键盘。 链接
-
autopy - 简单的跨平台GUI自动化工具包,适用于Python。 链接
-
pywinauto - Windows UI自动化。 链接
-
SikuliX - sikuli的稳定长期更新版本。链接
-
Python-UIAutomation-for-Windows - uiautomation封装了微软UIAutomation API,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, Firefox等。链接 国产
UI测试
-
pyautoacad - AutoCAD自动化。 链接
-
sikuli - 位图自动化。 链接
-
monkeyrunner- 安卓自动化。 链接
-
ldtp - Linux UI自动化。 链接
-
dogtail- Linux UI自动化。 链接
-
pyautoit- autoit python api。 链接
-
雪峰磁针石说明:
autopy、WATSUP、winGuiAuto因为较长时间未更新未收录
性能测试
软件测试专家工具包2性能测试 https://china-testing.github.io/testing_tools_perf.html
-
funkload - 性能及功能测试工具。 链接 --推荐
-
Locust.io – 了解服务器端性能的好工具。 语言python3。源码 python3+ python2.7+ github上star和fork最多的性能测试工具。 --强烈推荐
-
Bees with Machine Guns – 进行负载测试的蜜蜂(微型EC2实例)。 语言python3+ python2.6+ --强烈推荐
-
Multi-Mechanize – 用于性能和负载测试的开源框架,它运行并发Python脚本以生成针对远程站点或服务的负载(复合事务)。它通常用于Web性能和扩展性测试,但您也可以使用Multi-Mechanize来测试任何远程API。 --基于python多进程和多线程实现,学习自行开发性能测试的佳品。 Python 2.6 or 2.7 较长时间没有更新,一般只建议改造使用。
-
ngrinder - 市面上最强大的性能测试工具之一,主要用jython书写脚本,性能在loadrunner和jmeter之上,扩展性好。 链接 --强烈推荐
-
boom - 类似ab(ApacheBench)的性能测试工具。 链接
渗透测试
- fsociety - 一个渗透测试框架。
- setoolkit - 用于社会工程的工具箱。
- sqlmap - 自动SQL注入和数据库接管的工具。
跨语言调用
- python库介绍-jpype:python到java桥
- python库介绍-pyjnius:访问java类
- python3外部库boost介绍 用c++为python编写扩展
- PyExecJS 执行JavaScript代码。
- C++11和Python桥
测试框架
-
pyresttest 接口测试框架 -- 推荐
-
HttpRunner HTTP接口测试框架 -- 推荐
-
augmented-traffic-control facebook开发的最强悍弱网网络模拟工具 --强烈推荐
-
Hypothesis - 高级单元测试测试框架,支持行为驱动,基于property 。 链接 -- 推荐
-
unittest - (Python 标准库) 单元测试框架 链接 -- 推荐
-
mamba - 行为驱动测试框架。 链接
-
nose- 更好的单元测试框架。 链接 -- 推荐
-
nose2- nose基于unittest2的版本。 链接
-
pytest- 很好的强大的单元测试框架,实际上广泛使用在自动化单元、接口、功能等测试。 链接 -- 强烈推荐 参考
-
testify - 单元测试框架,提供增强的测试fixture设置,将测试套件拆分成易于并行化的存储bucket,PEP8命名约定,带有大量日志/报告选项及颜色测试运行器。链接
-
trial - Twisted的单元测试框架,基于unittest。链接
-
Robot Framework- 通用的python测试框架,易于上手,生成的报告比较好看,适合小型公司使用,支持关键字和数据等驱动,系业界内很出名的框架。不过因为写用例不能很灵活的应用python,需要大量的python封装,大公司通常使用pytest,django,flask之类的库自行开发。 链接
-
macaca - Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。 链接
-
green- 彩色(命令行能显示多种颜色)的单元测试框架。 链接
-
tox- 基于virtualenv的测试框架,主要用于解决多版本python问题。 链接
-
sixpack- A/B 测试框架。 链接
-
lettuce- 行为驱动 测试框架。 链接
-
pyccuracy- 行为驱动 web验收测试框架。 链接
-
pytest-bdd- 基于pytest的行为驱动 测试框架。 链接
-
pytest-html- pytest生成html插件。 链接
-
ddt- 数据驱动测试。 链接
-
behave- 行为驱动测试。 链接
-
lettuce- 行为驱动测试。 链接
-
mamba - Python的测试定义工具,基于行为驱动。链接
-
pyvows - Python的异步行为驱动开发,Vows.js的python移植。链接
-
pyhamcrest - Python的Hamcrest匹配器。 链接
-
sure - 强大而灵活的断言python测试库。链接
-
factory_boy - 基于thinkbot的factory_girl的fixture替代。链接
Mock
-
doublex:强大的测试桩框架。链接
-
mock:(Python3 标准库) mock和patch。链接
-
freezegun:伪造时间。[链接]https://github.com/spulec/freezegun)
-
httmock:Python 2.7+ 和 3.4+ mock requests库。链接
-
httpretty:Python 的 HTTP 请求 客户端mock 工具,暂时不支持python3。链接
-
responses:针对requests 库的mock库。链接
-
VCR.py:录制HTTP请求加快测试执行速度并可进行mock。链接 -- 推荐
-
factoryboy:Python测试fixtures(setup和teardown)替代库。链接
-
mixer:另外一个测试fixtures(setup和teardown)替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。链接
-
modelmommy:为 Django测试创建随机fixtures 链接
-
faker:生成多种伪数据。链接
-
fake2db:伪造数据库生成器。链接
-
mimesis:生成mock数据。[链接]https://github.com/lk-geimfari/mimesis)
-
雪峰磁针石说明:
radar 因为github星级太少而未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing
其他测试工具
-
coverage:代码覆盖率。链接
-
FuckIt.py:代码出错也可以执行。链接
-
RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。链接
-
MechanicalSoup:用于自动和网络站点交互的 Python 库。链接
-
augmented-traffic-control:网络模拟工具。链接 -- 强烈推荐
持续交付
-
buildbot - google等公司使用的持续集成框架,上手比Jenkins难,功能和性能远比Jenkins强大。 链接python库介绍-buildbot教程
-
BitBake – 嵌入式Linux上类似make工具。链接
-
buildout – 用于从多个部分创建,组装和部署应用程序的构建系统。链接
-
PlatformIO – 在不同的开发平台的控制台构建工具。链接
-
PyBuilder – 纯Python编写的持续构建工具。链接
-
SCons – 软件构建工具。链接
-
jenkinsapi – Hudson & Jenkins python API。链接
测试工具对接
- jira –自动化JIRA。链接
awesome-python
管理面板(Admin Panels)
-
Ajenti - Linux & BSD web管理面板。管理进程和文件等。 链接
-
django-suit - 现代主题的Django管理界面(仅限非商业用途)。链接
-
django-xadmin - 方便的Django admin替代。 完全支持插件扩展,基于 Twitter Bootstrap,并有站内书签、支持 xls, csv, xml和json数据导入等不少增强。 链接
-
jet-bridge - 管理面板框架,适用于任何具有良好用户界面的应用程序(例如Jet Django)
-
flask-admin - Flask的简单和可扩展的 web 管理界面框架。 链接
-
flower - Celery的实时监控和网络。 链接
-
Grappelli - Django管理界面的爵士皮肤。[链接]https://github.com/sehmaschine/django-grappelli)
-
Wooey - 为Python脚本创建自动Web UI的Django应用程序。 链接
算法和设计模式(Algorithms and Design Patterns)
Python数据结构、算法和设计模式的实现。 参考awesome-algorithms.
- 算法
- algorithms - 数据结构和算法的最小例子。
- python-ds - 用于编码面试的数据结构和算法的集合。
- sortedcontainers - 快速和纯Python实现的排序集合。
- TheAlgorithms - 用Python实现的所有算法。 --强烈推荐
- 设计模式
- PyPattyrn - 简单而有效的库,用于实现常见的设计模式。
- python-patterns - Python中设计模式的集合。
- transitions - 轻量级、面向对象的有限状态机实现。
反病毒(Anti-spam)
-
django-simple-captcha - 简单且高度可定制的Django应用,可以将验证码图像添加到任何Django表单。 链接
-
雪峰磁针石说明:
django-simple-spam-blocker因为github星级太少而未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing
资产管理(Asset Management)
用于管理,压缩和缩小网站资产的工具。
-
django-compressor - 将链接和内联的JavaScript或CSS压缩到单个缓存文件中。 链接
-
django-pipeline - Django的资产包装库。 链接
-
django-storages - Django自定义存储后端集。 链接
-
fanstatic - 用 Python 的包的方式封装,优化静态文件并解依赖。 链接
-
fileconveyor - 检测和同步文件到CDN,S3和FTP的后台程序。 链接
-
flask-assets - 集成web 资源到Flask应用。 链接
-
jinja-assets-compressor - Jinja扩展程序,用于编译和压缩资源。 链接 -- github星级不到100.
-
webassets - 为静态资源打包,优化和管理基于缓存的唯一URL。 链接
音频(Audio)
用于操作音频及其元数据的库
-
音频
- audioread - 跨库(GStreamer + Core Audio + MAD + FFmpeg)音频解码。
- audioFlux - 一个用于音频和音乐分析、特征提取的库。
- dejavu - 音频指纹和识别。 -- 推荐
- kapre - Keras音频预处理。
- librosa - 用于音频和音乐分析的 Python 库。
- matchering - 一个用于自动参考音频母版的库。
- mingus - 一个支持MIDI文件和播放的高级音乐理论和记谱包。
- pyAudioAnalysis - 音频特征提取、分类、分割和应用。 -- 推荐
- pydub - 用一个简单易行的高级界面操纵音频。 -- 推荐
- TimeSide - 开放的网络音频处理框架。
- m3u8 - 解析m3u8文件的模块。链接
-
元数据
- beets - 一个音乐库管理器和MusicBrainz标签器。 -- 推荐
- eyeD3 - 一个用于处理音频文件的工具,特别是含有ID3元数据的MP3文件。
- mutagen - 一个处理音频元数据的Python模块。
- tinytag - 一个用于读取MP3、OGG、FLAC和Wave文件的音乐元数据的库。
-
雪峰磁针石说明:
django-elastic-transcoder, eyeD3 因为github星级太少而未收录
scikits.talkbox 因长时间未更新未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing
认证(Authentication)
-
Authomatic:简单但是强大的框架,身份验证/授权客户端。链接
-
django-allauth:Django 的验证应用。链接
-
django-oauth-toolkit: Django OAuth2。链接
-
django-oauth2-provider:Django OAuth2。链接
-
Flask-OAuthlib: Flask OAuthlib 。链接
-
OAuthLib: 通用完整的实现OAuth请求-签名逻辑。链接
-
python-oauth2:创建 OAuth 客户端和服务端完全测试的抽象接口。链接
-
python-social-auth:设置简单的社交认证。链接
-
rauth:OAuth 1.0/a, 2.0, 和 Ofly。链接
-
sanction:一个超级简单的OAuth2 客户端实现。链接
-
PyJWT:JSON Web 令牌python实现。链接
-
python-jwt:生成和验证 JSON Web 令牌。链接
-
雪峰磁针石说明:
jose,python-jws因为github星级太少而未收录
scikits.talkbox 因长时间未更新未收录
内置类增强(Built-in Classes Enhancement)
- dataclasses - (Python standard library) Data classes.
- attrs - 替换类定义中的__init__,eq,__repr__等样板文件。
- bidict - 高效的双向字典。
- Box - 点符号访问的Python字典
区块链(Blockchain)
- blockchain - 简单的区块链。
- bidict - 高效的双向字典。
- Box - 点符号访问的Python字典
CMS(Content Management Systems)
内容管理系统
-
django-cms:开源的,基于Django的企业级 CMS。链接
-
djedi-cms:轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。[链接]http://djedi-cms.org/)
-
FeinCMS:基于 Django 构建的最先进的内容管理系统之一。链接
-
Kotti:高层的的web应用框架,基于 Pyramid 构建。链接
-
Mezzanine:强大的,一致的,灵活的内容管理平台。链接 -- 推荐
-
Opps:杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。[链接]https://github.com/opps/opps)
-
Plone:构建于开源应用服务器 Zope 之上的 CMS。链接
-
Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。链接
-
Wagtail:Django 内容管理系统。链接 -- 推荐
-
Widgy: CMS 框架,基于 Django。链接
缓存(Caching)
缓存数据的库。
-
Beaker:缓存和会话库,可以用在 web 应用和独立 Python脚本和应用上。链接
-
DiskCache:Python磁盘缓存(Django兼容)。。链接
-
django-cache-machine:Django 模型的自动缓存和失效。链接
-
django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。链接
-
dogpile.cache:dogpile.cache 是 Beaker 的替代,由同一作者开发。链接
-
HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。链接
-
johnny-cache:django应用缓存框架。[链接]https://github.com/jmoiron/johnny-cache)
-
pylibmc:libmemcached 接口的 Python 封装。链接
-
雪峰磁针石说明:
django-viewlet因为github星级太少而未收录
自动聊天工具(ChatOps Tools)
- Errbot:最简单和最流行的聊天机器人用来实现自动聊天工具。链接
代码分析和lint(Code Analysis)
-
代码分析
- coala:语言独立和易于扩展的代码分析应用程序。coala
- code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。链接
- prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。prospector
- pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。链接
- vulture - 死代码分析.
- gprof2dot - 转换profiling为图形.
- objgraph - python对象图.
- mccabe - McCabe复杂度检查.
-
代码Linters
- Flake8:模块化源码检查工具: pycodestyle, pyflakes 以及 McCabe的封装。链接
- awesome-flake8-extensions
- pylama:python和JavaScript代码审计。链接
- Pylint:完全可定制的源码分析器。链接
- wemake-python-styleguide - 有史以来最严格和最有主见的Python linter.
-
代码格式化
- pep8 :python风格检查。链接 --推荐
- autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。链接 --推荐
- black - 不折不扣的Python代码格式化器。
- isort - 对import进行排序的Python工具/库。
- yapf - 来自Google的Python代码格式化器。
-
静态类型检查 awesome-python-typing
- mypy :静态类型检查。链接 --推荐
- pyre-check - 执行类型检查
- typeshed - 类型注释。
-
静态类型注释生成器
- MonkeyType - 通过收集运行时类型生成静态类型注释。
- pytype - Pytype检查和推断Python代码的类型 - 不需要类型注释。
命令行工具(Command-line Tools)
命令行程序开发( Command-line Application Development)
-
alive-progress - 一种新的进度条,具有实时吞吐量、等值和非常酷的动画效果。
-
asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。链接
-
cement:Python 的命令行程序框架。链接
-
click:一个通过组合的方式来创建精美命令行界面的包。链接 --推荐
-
cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。链接
-
colorama:跨平台彩色终端文本。链接
-
tqdm - 用于循环和CLI的快速、可扩展的进度条。
-
docopt:Python 风格的命令行参数解析器。链接 --推荐
-
Gooey:一条命令,将命令行程序变成一个 GUI 程序。链接
-
Python-Fire:将命令行程序变成一个 GUI 程序。链接 --推荐
-
python-prompt-toolkit:构建强大的交互式命令行程序的库。链接 --推荐
-
Pythonpy:在命令行中直接执行任何Python指令。链接
生产力工具(Productivity Tools)
-
aws-cli:Amazon Web Services 的通用命令行界面。链接
-
bashplotlib:在终端中进行基本绘图。链接
-
caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。链接
-
copyer - 用于渲染项目模板的库和命令行工具。
-
cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。链接
-
doitlive:一个用来在终端中进行现场演示的工具。链接
-
howdoi:通过命令行获取即时的编程问题解答。链接 --推荐
-
httpie:命令行HTTP 客户端,cURL 的替代品,易用性更好。链接
-
PathPicker:从bash输出中选出文件。链接
-
percol:向UNIX shell 传统管道概念中加入交互式选择功能。链接
-
SAWS:一个加强版的 AWS 命令行。链接
-
thefuck:修正你之前的命令行指令。链接
-
mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。链接 --推荐
-
pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。链接 --推荐
-
try:很简单的命令行工具,用来试用python库。链接
兼容性(Compatibility)
帮助从 Python 2 向 Python 3迁移的库。
-
Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层。链接
-
Python-Modernize:使 Python 代码更加现代化以便最终迁移到 Python 3。[链接]https://github.com/mitsuhiko/python-modernize)
-
Six:Python 2 和 3 的兼容性工具。链接
计算机视觉(Computer Vision)
计算机视觉库。
- EasyOCR - 即用型OCR,支持40多种语言。
- Face Recognition - 简单的面部识别库。
- Kornia - Kornia是用于PyTorch的可微分计算机视觉库。
- OpenCV:开源计算机视觉库。链接
- pyocr:Tesseract 和 Cuneiform 的包装库。链接
- pytesseract:Google Tesseract OCR 的另一包装库。链接文档
- SimpleCV:一个用来创建计算机视觉应用的开源框架。链接
- tesserocr - 另一个简单的、对Pillow友好的、围绕OCR的tesseract-ocr API的包装器。
并发和并行及异步与网络(Concurrency and Parallelism)
用以进行并发和并行操作的库。
-
multiprocessing:(Python 标准库) 基于进程的“线程”接口。链接 --推荐
-
threading:(Python 标准库)更高层的线程接口。 链接 --推荐
-
eventlet:支持 WSGI 的异步框架。链接
-
gevent:一个基于协程的 Python 网络库,使用greenlet。链接 --推荐
-
Tomorrow:用于产生异步代码的神奇的装饰器语法实现。 链接
-
uvloop:在libuv之上超快速实现asyncio事件循环。链接 --推荐
-
asyncio - (Python 标准库) 异步 I/O, 事件循环, 协程以及任务 链接 --推荐
-
aiohttp 异步http client/server框架(asyncio) 链接 --推荐
-
curio 协程并发库. 链接
-
pulsar - 事件驱动的并发框架. 链接
-
pyzmq - ZeroMQ 消息库的 Python 封装. 链接
-
Twisted - 事件驱动的网络引擎. 和asyncio有很多类似的地方,逐渐被代替,需要数据库等相关生态圈的支持 链接
-
diesel - 基于Greenlet 的事件 I/O 框架。. 链接
-
Tornado - web 框架和异步网络库. 链接
-
Trio – 异步I/O 链接 可能会飙升
-
NAPALM - 处理网络设备的跨供应API. 链接
-
txZMQ - 基于 Twisted 的 ZeroMQ 消息库的 Python 封装。链接
配置(Configuration)
用来保存和解析配置的库。
-
config:logging 模块作者写的分级配置模块。链接 -- 较长时间未更新
-
ConfigObj:INI 文件解析器,带验证功能。链接
-
ConfigParser:(Python 标准库) INI 文件解析器。链接
-
profig:通过值转换配置多种格式。链接
-
python-decouple:将设置和代码完全隔离。链接
加密(Cryptography)
-
cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。链接
-
Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。链接 -- 推荐
-
Passlib:安全密码存储/哈希库,链接
-
PyCrypto:Python 密码学工具箱。链接
-
PyNacl:网络和密码学(NaCl) 库的 Python 绑定。链接
数据分析(Data Analysis)
-
blaze:NumPy 和 Pandas 的大数据接口。链接
-
Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。链接
-
orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。链接
-
Pandas:提供高性能,易用的数据结构和数据分析工具。链接 --强烈推荐
-
facets 机器学习数据集可视化 --推荐
-
书籍:利用Python进行数据分析 2017 第二版 代码 链接 --推荐
-
利用Python进行数据分析·第2版 --推荐
数据验证(Data Validation)
数据验证库。多用于表单验证。
-
Cerberus: 轻量级可扩展的数据验证库.链接
-
colander:验证并反序列化XML、JSON、HTML表单获取的数据。链接
-
jsonschema:json模式的实现。链接
-
kmatch:一种用于匹配/验证/筛选 Python 字典的语言。链接
-
schema:一个用于对 Python 数据结构进行验证的库。链接
-
Schematics:人性化的python数据结构。链接
-
valideer:轻量级可扩展的数据验证和适配库。链接
-
voluptuous:Python 数据验证库。主要是为了验证传入 Python的 JSON,YAML 等数据。链接
数据可视化(Data Visualization)
进行数据可视化的库。 参见: awesome-javascript。
-
matplotlib:Python 2D 绘图库。链接 --推荐
-
bokeh:用Python进行交互式web绘图。链接 --推荐 英文快速入门中文快速入门
-
plotnine - ggplot的 Python移植 -荐
-
Dash - 基于Flask,React和Plotly, 针对分析Web应用程序。
awesome-dash
-
plotly:交互式基于浏览器的绘图。链接
-
streamlit:构建和共享数据应用程序。链接 -强烈推荐
-
pyecharts:基于百度 Echarts 的数据可视化库。链接 -荐
-
pygal:Python SVG 图表创建工具。链接
-
pygraphviz:Graphviz 的 Python 接口。链接
-
PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件。链接
-
SnakeViz:基于浏览器的 Python cProfile 模块输出结果查看工具。链接
-
vincent:把 Python 转换为 Vega 语法的转换工具。链接
-
VisPy:基于 OpenGL 的高性能科学可视化工具。链接
-
Altair - 用于Python的声明式统计可视化库。链接
-
bqplot - Jupyter Notebook的互动绘图库。链接
-
Cartopy - 支持matplotlib的地图学python库。
-
Seaborn - 使用Matplotlib进行统计数据可视化。链接 -荐
-
plotly.py 交互式基于浏览器的绘图 -荐
-
prettytable 易读的ASCII表格格式显示表格数据
A Dramatic Tour through Python’s Data Visualization Landscape (including ggplot and Altair)
Python data visualization: Comparing 7 tools
10 Useful Python Data Visualization Libraries for Any Discipline
Overview of Python Visualization Tools
Effectively Using Matplotlib
pyecharts + notebook
Bokeh vs Dash
01+ Resources to Learn Data Science chinese
数据库(Database)
Python实现的数据库。
-
pickleDB:简单,轻量级键值储存数据库。链接
-
PipelineDB:流式 SQL 数据库。链接
-
TinyDB:轻型的,面向文档型数据库。链接
-
ZODB: Python 原生对象数据库。键值和对象图数据库。链接
数据库驱动(Database Drivers)
连接和操作数据库的库。
-
mysql-python:Python 的 MySQL 数据库连接器。链接 不支持python3,不推荐
-
PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python。链接 --推荐
-
mysql-connector-python:mysql官方python API。链接 --推荐
-
psycopg :Python 中最流行的 PostgreSQL 适配器。链接 --推荐
-
queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互。链接
-
txpostgres:基于 Twisted 的异步 PostgreSQL 驱动。链接
-
apsw:另一个 Python SQLite 封装。链接
-
dataset:在数据库中存储 Python 字典 pymssql:简单的 Microsoft SQL Server 数据库接口。链接
-
sqlite3 - (Python标准库)SQlite接口与DB-API 2.0兼容。
-
SuperSQLite - 一个建立在apsw之上的超强SQLite库。
-
cassandra-python-driver:Cassandra 的 Python 驱动。链接
-
HappyBase:Apache HBase。链接
-
Plyvel:快速且功能丰富的 LevelDB 的 Python 接口。链接
-
pycassa:Cassandra 的 Python Thrift 驱动。链接
-
PyMongo:MongoDB 的官方 Python 客户端。链接 -- 推荐
-
redis-py:Redis 的 Python 客户端。链接 -- 推荐
-
txRedis:基于 Twisted 的 Redis 客户端。链接
-
pymemcache:纯Python memcached 客户端。链接
日期和时间(Date and Time)
操作日期和时间的类库。
-
arrow:更好的 Python 日期时间操作类库。链接 -- 推荐
-
Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。链接
-
dateutil:Python datetime 模块的扩展。链接
-
delorean:解决 Python 中有关日期处理的棘手问题的库。链接
-
moment:用来处理时间和日期的 Python 库。灵感来自于 Moment.js。链接
-
pendulum:更处理datetime。链接
-
PyTime:简单易用的 Python 模块,用于通过字符串来操作日期/时间。链接
-
pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。链接 --推荐
-
when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。链接
-
maya:人性化的datetime。
调试工具(Debugging Tools)
代码调试的库。
-
PySnooper: 让你做print的事情,但不需要麻烦地添加很多语句,你只需要添加装饰器就可以得到运行日志,包括线运行,及对应变量的值。链接介绍
-
ipdb:IPython的 pdb。链接
-
pudb:pdb的替代。链接 -- 推荐
-
pudb:全屏,基于控制台的 Python 调试器。链接
-
pyringe:可以在 Python 进程中附加和注入代码的调试器。链接
-
wdb:一个奇异的 web 调试器,通过 WebSockets 工作。链接
-
winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2。链接
-
django-debug-toolbar:为 Django 显示各种调试信息。链接
-
django-devserver:一个 Django 运行服务器的替代品。链接
-
flask-debugtoolbar:django-debug-toolbar 的 flask 版。链接
-
性能分析器
-
pympler:运行时内存分析工具。链接
-
lineprofiler:逐行性能分析。链接
-
Memory Profiler:监控 Python 代码的内存使用。官网、内存 链接
-
py-spy - Python程序的采样分析器. Rust编写.
-
pyflame - Python的跟踪分析器
-
vprof - 可视化Python分析器.
-
其他 pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息。链接
-
python-statsd:statsd 服务器的 Python 客户端。链接
深度学习(Deep Learning)
机器学习库。 参见:awesome-deep-learning.*
2018最佳机器学习工具书及下载(持续更新)
- Caffe - 快速开放的深度学习框架 --推荐
- Keras - 高级神经网络库,能够在TensorFlow或Theano之上运行。 --推荐
- MXNet - 高效率和灵活的深度学习框架。
- Neupy - 运行和测试不同的人工神经网络算法.
- Pytorch - Python中的张量和动态神经网络,具有强大的GPU加速功能。 --推荐
- lightning - 用于快速训练、部署和发布人工智能产品的深度学习框架,基于Pytorch。 --推荐
- fastai - 基于Pytorch的深度学习库。 --推荐
- Serpent.AI - 游戏代理框架。 使用任何视频游戏作为深度学习沙盒。 --推荐
- TensorFlow - 由Google创建的最受欢迎的深度学习框架。 --强烈推荐
- Theano - 用于快速数值计算的库. --推荐
- Shogun C++实现,为包括Python在内的多种语言和平台提供统一的接口。 它侧重于可扩展的内核方法,以解决回归和分类问题。 Shogun关注生物信息学,可以扩展以处理超过1000万个数据样本,同时保持准确性。
- CNTK 微软的深度学习框架。
- sqlflow SQLFlow是连接SQL引擎的桥梁,例如 MySQL,Hive,SparkSQL或SQL Server,带有TensorFlow和其他机器学习工具包。 SQLFlow扩展了SQL语言,以支持模型训练,预测和推理。 国内唯一的技术大公司 阿里巴巴出品!
- tinyml 边缘机器学习。
DevOps工具(DevOps Tools)
用于DevOps的软件和库
- 配置管理
- ansible - 极其简单的IT自动化平台。 --推荐
- cloudinit - 一个处理云实例的早期初始化的多分布包。
- OpenStack - 用于构建私有云和公共云的开源软件。
- pyinfra - 一个多功能的CLI工具和python库,用于自动化基础设施。
- saltstack - 基基础设施自动化和管理系统。 --推荐
- nova - OpenStack计算。 --推荐
- swift - OpenStack存储。 --推荐
- SSH-style Deployment
- fabric - 简单的Pythonic远程执行和部署工具。 --推荐
- fabtools - 用于编写出色的Fabric文件的工具。
- cuisine - 为 Fabric 提供一系列高级函数。
- pexpect - 在像GNU expect这样的伪终端中控制交互式程序。 --强烈推荐
- 流程管理
- honcho - Foreman的一个Python克隆,用于管理基于Procfile的应用程序。
- supervisor - UNIX的Supervisor进程控制系统。
- 监控
- psutil - 平台的进行和系统实用程序模块。 --推荐
- prometheus - 普罗米修斯监控平台python官方客户端。 --推荐
- 备份
- BorgBackup - 一个具有压缩和加密功能的重复编码存档器。
- 其他
- docker-compose - 使用Docker快速、隔离的开发环境。 --推荐
- gitapi:Git 的纯 Python API。官网
- hgapi:Mercurial 的纯 Python API。官网
分发(Distribution)
打包为可执行文件以便分发。
-
PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。链接 --推荐
-
dh-virtualenv:构建并将 virtualenv 虚拟环境作为Debian 包来发布。链接
-
Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。链接
-
py2app:将 Python 脚本变为独立软件包(Mac OS X)。链接 --推荐
-
py2exe:将 Python 脚本变为独立软件包(Windows)。链接 --已经比较久没有更新了。
-
pynsist:用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。链接
文档(Documentation)
用以生成项目文档的库。
-
Sphinx:Python 文档生成器。链接
-
awesome-sphinxdoc:链接
-
pdoc:替换Epydoc 的库,可以自动生成 Python 库的 API 文档。链接
-
Pycco:文学编程风格的文档生成器。链接
-
readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用。链接 -- 推荐
下载器(Downloader)
用来进行下载的库.
-
s3cmd:一个用来管理Amazon S3 和 CloudFront 的命令行工具。链接
-
s4cmd:超级 S3 命令行工具,性能更加强劲。链接
-
you-get:优酷、YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。链接 --强烈推荐
-
youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。链接
电子商务(E-commerce)
用于电子商务以及支付的框架和库。
-
django-oscar:基于Django 的开源的电子商务框架。链接 -- 推荐
-
django-shop: 基于 Django 的店铺系统。链接
-
Cartridge:一个基于 Mezzanine 构建的购物车应用。链接
-
shoop:基于 Django 的开源电子商务平台。链接
-
alipay:非官方的 Python 支付宝 API。链接
-
merchant:可以接收来自多种支付平台支付的 Django 应用。链接
-
money:Python钱类,带有可选的CLDR支持的区域识别格式和可扩展的货币兑换解决方案。链接
-
forex-python:外汇汇率,比特币价格指数和货币兑换。链接
-
saleor - Python和Django的电子商务店面。链接
-
雪峰磁针石说明:
python-currencies因为星级较少没有收录
编辑器插件(Editor Plugins and IDEs)
编辑器和 IDE 的插件
-
Elpy:Emacs Python 开发环境。链接
-
SublimeJEDI:Sublime Text 插件,用来实现自动补全库 Jedi。链接
-
Anaconda:把你的 Sublime Text 3 变成功能齐全的 Python IDE。链接
-
YouCompleteMe:引入基于 Jedi 的 Python 自动补全引擎。链接
-
Jedi-vim:绑定 Vim 和 Jedi 自动补全库对 Python 进行自动补全。链接
-
Python-mode:Vim 变成 Python IDE 的多合一插件。链接
-
PTVS:Visual Studio 的 Python 工具链接
-
wingIDE:商业化的 Python IDE,功能强大,占用资源少,python开发。也有免费的社区版提供。[链接]https://wingware.com/) -- 推荐
-
PyCharm:商业化的 Python IDE ,由 JetBrains 开发。也有免费的社区版提供。链接
-
LiClipse:基于 Eclipse 的免费多语言 IDE 。使用 PyDev 来支持 Python 。链接
-
Spyder:开源 Python IDE。链接
-
komodo-ide 链接
电子邮件(Email)
用来发送和解析电子邮件的库。
-
mailer:用简单的方式发送邮件。链接 -- 推荐
-
envelopes:人性化的电子邮件库。链接
-
flanker:email 地址和 Mime 解析库。链接
-
imbox:人性化的Python IMAP 库链接
-
inbox:具有时尚API的IMAP/SMTP同步系统。链接 -- 推荐
-
lamson:Python 风格的 SMTP 应用服务器。链接
-
marrow.mailer:高性能可扩展邮件分发框架。链接
-
modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。链接
-
pyzmail:创建,发送和解析电子邮件。链接
-
Talon:Mailgun 库,用来抽取信息和签名。链接
-
yagmail- 另外一个 Gmail/SMTP客户端。链接
-
sync-engine - IMAP/SMTP同步。 链接 -- 推荐
环境管理(Environment Management)
Python版本和环境管理
-
Pipenv:Pipfile,Pip和Virtualenv的结合。链接 --强烈推荐
-
p:简单的python版本管理工具。链接
-
pyenv:简单的python版本管理。链接 --强烈推荐
-
venv:创建python虚拟环境,python3标准库。链接 --强烈推荐
-
virtualenv:创建独立的Python 环境。链接 --强烈推荐
-
virtualenvwrapper:virtualenv 的扩展。链接 --强烈推荐
-
poetry - 简化Python依赖性管理和打包 --强烈推荐
文件(Files)
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
-
imghdr:(Python 标准库)检测图片类型。链接
-
mimetypes:(Python 标准库)将文件名映射为 MIME 类型。链接
-
path.py:对 os.path 进行封装的模块。链接
-
pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。链接 --强烈推荐
-
python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。链接
-
Unipath:用面向对象的方式操作文件和目录。链接
-
watchdog:管理文件系统事件的 API 和 shell 工具。链接 --推荐
外部函数接口(Foreign Function Interface)
-
cffi:调用 C 代码。链接 --强烈推荐
-
ctypes:(Python 标准库) 调用 C 代码。链接 --强烈推荐
-
PyCUDA:Nvidia CUDA API 的封装。链接
-
SWIG:简单的包装器和接口生成器。链接
表单(Forms)
-
Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。链接
-
django-bootstrap3:集成了 Bootstrap 3 的 Django。链接 --推荐
-
django-bootstrap4 - Django集成Bootstrap 4.
-
django-crispy-forms:非常优雅且 DRY(Don't repeat yourself) 的方式来创建美观的表单。链接 --推荐
-
django-remote-forms:平台独立的 Django 表单序列化工具。链接
-
WTForms:灵活的表单验证和渲染库。链接
函数式编程(Functional Programming)
-
CyToolz:Toolz 的 Cython 实现 : 高性能函数工具。链接
-
fn.py:在 Python 中进行函数式编程 : 实现了一些函数式编程缺失的功能。链接 -- 推荐
-
funcy:炫而实用的函数式工具。链接
-
Toolz:一组用于迭代器,函数和字典的函数式编程工具。链接
-
returns - 一组类型安全的单体、tranformers和组合工具
##动态消息
用来创建用户活动的库。
-
django-activity-stream:从你的站点行为中生成通用活动信息流。链接
-
Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。链接
图形用户界面(GUI)
- curses:内置的ncurses 封装,用来创建终端图形用户界面。标准库。链接
- Eel - 用于制作简单电子类离线HTML / JS GUI应用程序的小程序库。链接
- enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。链接
- kivy:创建NUI应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。链接 -推荐
- pyglet:Python 的跨平台窗口及多媒体库。链接
- PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。链接
- PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。链接
- Tkinter:Python GUI 标准库。链接
- PySimpleGUI - Wrapper for tkinter, Qt, WxPython and Remi that creates a unified, easy to understand & more Python-like interface for beginner and intermediate level custom GUIs.
- Toga:Python 原生的, 操作系统原生的 GUI 工具包。链接
- urwid:创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。链接
- wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。链接
- DearPyGui - 一个简单的GPU加速的Python GUI框架
- PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。链接
- Flexx:纯 Python编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。链接
GraphQL
*用于处理GraphQL的库。
- graphene - Python的GraphQL框架。
- tartiflette-aiohttp - Tartiflette的一个基于aiohttp的包装器,通过HTTP暴露GraphQL APIs。
- tartiflette-asgi - Tartiflette GraphQL引擎的ASGI支持。
- tartiflette - 适用于Python 3.6+和asyncio的SDL-first GraphQL引擎实现。
游戏开发(Game Development)
- Arcade - Arcade是一个现代Python框架,用于制作具有引人注目的图形和声音的游戏。
- Cocos2d - cocos2d是用于构建2D游戏,演示和其他图形/交互式应用程序的框架。它基于pyglet。
- Panda3D - 由迪士尼开发并由卡内基梅隆娱乐技术中心维护的3D游戏引擎。用C ++编写,完全用Python包装。 -推荐
- Pygame - Pygame是一套用于编写游戏的Python模块。 -推荐
- PyOgre - Ogre 3D渲染引擎的Python绑定,可用于游戏,模拟,任何3D。
- PyOpenGL - 用于OpenGL的Python ctypes绑定及其相关的API。
- PySDL2 - SDL2库的基于ctypes的包装器。
- RenPy - Visual Novel引擎。
- Harfang3D - Python framework for 3D, VR and game development. Manage and display complex 3D scenes, with physics, video, sound and music, access VR devices. All written in C++.
地理位置(Geolocation)
地理编码地址和纬度和经度的图书馆。
- django-countries - Django应用程序,提供与表单一起使用的国家选项,标志图标静态文件和模型的国家/地区字段。
- GeoDjango - 世界级的地理网络框架。 -推荐
- GeoIP - MaxMind GeoIP遗留数据库的Python API。
- geojson - GeoJSON的Python绑定和实用程序。
- geopy - Python地理编码工具箱。
- pygeoip - 纯Python GeoIP API。
HTML操作(HTML Manipulation)
用于处理HTML和XML的库。
- BeautifulSoup - Python风格的方式来对HTML或XML进行迭代,搜索和修改。 -推荐
- bleach - 基于白名单的HTML清理和文本链接库。
- cssutils - Python的CSS库。
- html5lib - 用于解析和序列化HTML文档和片段的符合标准的库。
- lxml - 用于处理HTML和XML的非常快速,易于使用和多功能的库。 -推荐
- MarkupSafe - 为Python实现XML / HTML / XHTML标记安全字符串。
- pyquery - 用于解析HTML的jQuery类库。
- untangle - 将XML文档转换为Python对象以便于访问。
- WeasyPrint - 可导出为PDF的HTML和CSS可视化呈现引擎。
- xmldataset - 简单的XML解析。
- xhtml2pdf:HTML/CSS 转 PDF 工具。官网
- xmltodict - 像处理 JSON 一样处理 XML。
HTTP
使用 HTTP 的库。
- aiohttp:基于 asyncio 的异步 HTTP 网络库。官网
- requests:人性化的 HTTP 请求库。官网 --强烈推荐
- grequests:requests 库 + gevent ,用于异步 HTTP 请求.官网
- httplib2:全面的 HTTP 客户端库。官网
- treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。官网
- urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。官网
硬件(Hardware)
用于硬件编程的库。
- ino - 用于Arduino的命令行工具包。
- keyboard - 钩和模拟Windows和Linux上的全球键盘事件。
- 鼠标 - 在Windows和Linux上挂钩并模拟全局鼠标事件。
- Pingo - Pingo提供统一的API来编程像Raspberry Pi,pcDuino,Intel Galileo等设备。
- PyUserInput - 用于跨平台控制鼠标和键盘的模块。
- scapy - 出色的数据包操作库。
- thrift-tools thrift抓包工具。
- mitmproxy:HTTP和抓包库。官网
- Pyro:Python 机器人编程库。官网
- PyUserInput:跨平台的,控制鼠标和键盘的模块。官网
图像处理(Image Processing)
用于处理图像的库。
- pillow:Pillow 是一个更加易用版的 PIL。官网 -推荐 python库介绍-图像处理工具pillow中文文档-手册(2018 5.*)
- hmap:图像直方图映射。官网
- imgSeek:使用视觉相似性搜索一组图片集合的项目。官网 较长时间没有更新
- nude.py:裸体检测。官网
- python-barcode - 在Python中创建条形码,没有额外的依赖性。
- pygram:类似 Instagram 的图像滤镜。官网
- PyMatting - 用于alpha matting的库
- python-qrcode:纯 Python 实现的二维码生成器。官网 --推荐
- pywal - 从图像生成色彩方案的工具。
- pyvips - 快速的图像处理库,内存需求低。
- Quads:基于四叉树的计算机艺术。官网
- scikit-image:一个用于(科学)图像处理的 Python 库。官网 --推荐
- thumbor:小型图像服务,具有剪裁,尺寸重设和翻转功能。官网 --推荐
- wand:MagickWand的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。官网
- face_recognition:简单易用的 python 人脸识别库。官网 --强烈推荐
- pagan - 基于输入字符串和散列的复古identicon(阿凡达)生成。
- opencv-python 预编译的opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless。 --推荐
- imutils 一系列便利函数,可以使用OpenCV和Python轻松进行基本图像处理操作,如平移,旋转,调整大小,骨架化和显示Matplotlib图像。 --推荐
- word_cloud 词云
实现(Implementations)
-
Python的实现。*
-
CLPython - 用Common Lisp编写的Python编程语言。
-
CPython - 用C编写的Python编程语言的默认,最广泛使用的实现。 --强烈推荐
-
Cython - 优化Python的静态编译器。使用类型mixin将Python编译为C或C ++模块,从而获得巨大的性能提升 --强烈推荐
-
Grumpy - 更多的编译器比解释器更强大的CPython2.7替换(alpha)。 --推荐
-
IronPython - 实现用C#编写的面向.NET Framework和Mono的Python编程语言。 --推荐
-
Jython - 为Java虚拟机(JVM)实现用Java编写的Python编程语言。 --推荐
-
MicroPython - MicroPython - 精简高效的Python编程语言实现,用于微控制器和受限制的系统 --推荐
-
Numba - 针对科学Python的LLVM的Python JIT编译器。 --推荐
-
PeachPy - 嵌入在Python中的x86-64汇编程序。可以用作Python的内联汇编程序,也可以用作Windows,Linux,OS X,Native Client和Go的独立汇编程序。 --推荐
-
Pyjion - 基于CoreCLR的Python JIT。
-
PyPy - 实现用RPython编写并编译为C的Python编程语言.PyPy关注速度,效率以及与原始CPython解释器的兼容性。解释器使用黑魔法使Python非常快速,而无需添加额外的类型信息。 --强烈推荐
-
PySec - python的强化版本,使安全专业人员和开发人员可以更轻松地编写应用程序,从而更有弹性地处理攻击和操作。
-
Pyston - 使用LLVM和现代JIT技术构建的Python实现,其目标是实现良好的性能。 --推荐
-
Stackless Python - Python编程语言的增强版本,它允许程序员在没有性能和复杂性的情况下获得基于线程编程的好处与传统线程相关的问题。 --推荐
交互式Python解释器(Interactive Interpreter)
- bpython - 界面丰富的 Python 解析器。
- IPython - 功能丰富的工具,非常有效的使用交互式Python。 --强烈推荐
- Jupyter Notebook - 功能丰富的工具,非常有效的使用交互式Python。 --推荐
- ptpython - 在[python-prompt-toolkit]之上构建的高级Python REPL(https://github.com/jonathanslenders/python-prompt-toolkit) 。 --推荐
国际化
与i18n合作的图书馆
- Babel - Python国际化库。
- PyICU - Unicode C ++库的国际组件封装(ICU)。
作业调度(Job Scheduler)
用于调度作业的库。
- APScheduler - 轻量但功能强大的进程内任务调度程序,可让您安排功能。
- django-schedule - Django的日历应用程序。
- doit - 任务运行者和构建工具。
- gunnery - 具有基于Web界面的分布式系统的多用途任务执行工具。
- Joblib - 一组用Python提供轻量级流水线的工具。
- plan - 用Python编写crontab文件就像一个魅力一样。
- Prefect - 现代工作流协调框架,使其能够轻松构建、安排和监控强大的数据管道。
- schedule - 人性化的 Python 任务调度库。 --推荐
- Spiff - 以纯Python实现的强大的工作流引擎。
- TaskFlow - 可以让你方便执行任务的 Python 库,一致并且可靠。
- AirFlow:Airflow 是Airbnb公司开源的,是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。官方
日志(Logging)
用于生成和处理日志的库。
- Eliot - 复杂和分布式系统日志。
- logbook - Python logging的替代。
- logging - (Python标准库)Python的日志工具。 --推荐
- loguru - 旨在为Python带来愉快的日志记录的库。
- sentry-python - Python的Sentry SDK。
- structlog - 结构化的日志记录变得简单。
机器学习
机器学习库。请参阅:awesome-machine-learning。
- gym - 一个开发和比较强化学习算法的工具包。
- H2O - 开源快速可扩展机器学习平台。
- Metrics - 机器学习评估指标。
- NuPIC - 用于智能计算的Numenta平台。 --推荐
- scikit-learn - 流行的机器学习Python库。 --推荐
- Spark ML - Apache Spark的可扩展机器学习库。--推荐
- vowpal_porpoise - 用于[Vowpal Wabbit]的轻量级Python包装器(https://github.com/JohnLangford/vowpal_wabbit/)。
- xgboost - 可扩展,可移植且分布式的渐变增强库。 --推荐
- MindsDB - MindsDB是现有数据库的一个开源人工智能层,允许你毫不费力地使用标准查询来开发、训练和部署最先进的机器学习模型。
MapReduce
-
MapReduce的框架和库。*
-
PySpark - Apache Spark Python API。
-
dpark:Spark 的 Python 克隆版,类似 MapReduce 的框架。官网
-
dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。官网
-
luigi - 可帮助您构建批处理作业复杂管道的模块。
-
mrjob - 在Hadoop或Amazon Web Services上运行MapReduce作业。
-
streamparse - 针对实时数据流运行Python代码。与Apache Storm集成。
-
dask - 灵活的分析计算并行计算库。
-
Ray - A system for parallel and distributed Python that unifies the machine learning ecosystem.
-
faust - A stream processing library, porting the ideas from Kafka Streams to Python.
-
streamparse - Run Python code against real-time streams of data via Apache Storm.
微软Windows
-
Microsoft Windows上的Python编程。*
-
Python(x,y) - 基于Qt和Spyder的面向科学应用的Python发行版。 --推荐
-
pythonlibs - Python扩展包的非官方Windows二进制文件。 --推荐
-
PythonNet - .NET公共语言运行时(CLR)的Python集成。
-
PyWin32 - Python的Windows扩展。 --推荐
-
WinPython - Windows 7/8的便携式开发环境。 --推荐
杂项
不适合上述类别的有用库或工具。
- blinker:快速的 Python 进程内信号/事件分发系统。官网
- boltons - 一组纯Python的实用工具。
- itsdangerous:一系列辅助工具用来将可信的数据传入不可信的环境。官网
- magenta - 使用人工智能生成音乐和艺术的工具。
- pluginbase:一个简单但是非常灵活的 Python 插件系统。官网
- Tryton:通用商务框架。官网
自然语言处理(Natural Language Processing)
- 汉字转拼音(pypinyin) 连接 - 推荐
- NLTK:构建Python程序以处理人类语言数据的领先平台。连接 - 推荐
- jieba:中文分词工具。官网 - 推荐
- langid.py:独立的语言识别系统。官网
- Pattern:Python 网络信息挖掘模块。官网 - 推荐
- SnowNLP:用来处理中文文本的库。官网 - 推荐
- TextBlob:为进行普通自然语言处理任务提供一致的 API。官网 - 推荐
- TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。官网
- thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包官网
- gensim -人 性化的话题建模库。
- spaCy - 用于Python和Cython的工业强度自然语言处理的库。 -推荐
- PyTorch-NLP - A toolkit enabling rapid deep learning NLP prototyping for research.
- StanfordNLP - The Stanford NLP Group's official Python library, supporting 50+ languages
网络虚拟化(Network Virtualization)
用于虚拟网络和SDN(软件定义网络)的工具和库。
- Mininet:流行的网络模拟器以及用 Python 编写的 API。官网 -推荐
- POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。官网
- Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。官网
- SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic。官网
- NRU:一个基于组件的软件定义网络框架。官网
网络(Networking)
用于网络编程的库。
- uvicorn - Uvicorn是一个快如闪电的ASGI服务器实现,使用uvloop和httptools。
- asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。官网 -推荐
- Twisted:一个事件驱动的网络引擎。官网 -推荐
- pulsar:事件驱动的并发框架。官网
- diesel:基于 Greenlet 的事件 I/O 框架。官网
- pyzmq:ZeroMQ 消息库的 Python 封装。官网
- Toapi:轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。官网 -推荐
- txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。官网
- NAPALM - 用于操纵网络设备的跨供应商API。
动态消息
用来创建用户活动的库。
- django-activity-stream:从你的站点行为中生成通用活动信息流。官网
- Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。官网 -推荐
ORM
实现对象关系映射或数据映射技术的库。
关系型数据库
-
Django Models:Django 的一部分。链接
-
SQLAlchemy:Python SQL 工具以及对象关系映射工具。链接
- awesome-sqlalchemy
-
dataset - 在数据库中存储Python dicts - 适合SQLite、MySQL和PostgreSQL。
-
orator - Orator ORM提供了简单而漂亮的ActiveRecord实现。
-
orm - 异步ORM。
-
Peewee:小巧,富有表达力的 ORM, 支持postgresql, mysql and sqlite。[链接]https://github.com/coleifer/peewee)
-
pony:提供面向生成器的 SQL 接口的 ORM。链接
-
python-sql:编写 Python 风格的 SQL 查询。链接
-
pydal - 纯Python数据库抽象层。
NoSQL 数据库
-
django-mongodb-engine:Django MongoDB 后端。链接
-
PynamoDB:Amazon DynamoDB 的一个 Python 风格接口。链接
-
flywheel:Amazon DynamoDB 的对象映射工具。链接
-
MongoEngine:Python 对象文档映射工具,用于 MongoDB。链接
-
hot-redis:为 Redis 提供 Python 丰富的数据类型。链接
-
redisco:一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。链接
其他
-
butterdb:Google Drive 电子表格的 Python ORM。链接
-
dataset :基于JSON的数据库。链接
包管理(Package Management)
管理包和依赖
-
pip:管理包和依赖。链接pypi --强烈推荐
-
conda:跨平台,Python 二进制包管理工具。链接 --强烈推荐
-
Curdling:管理 Python 包的命令行工具。链接
-
pip-tools:保证 Python 包依赖关系更新的工具。链接
-
wheel:Python 分发的新标准,意在取代 eggs。链接 --强烈推荐
包仓库
本地 PyPI 仓库服务和代理。
-
warehouse:下一代 PyPI。链接
-
Warehouse:链接
-
bandersnatch:PyPA 提供的 PyPI 镜像工具。链接
-
devpi:PyPI 服务和打包/测试/分发工具。链接
-
localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。链接
权限(Permissions)
允许或拒绝用户访问数据或功能的库。
- Carteblanche - 将代码与用户和设计师的想法对齐的模块。也神奇地处理导航和权限。
- django-guardian - 为Django 1.2+权限管理
- django-rules - 小巧但功能强大的应用程序,它为Django提供对象级权限,而不需要数据库。
进程(Processes)
用于启动和与OS进程进行通信的库。
- delegator.py - Subprocesses用于Humans™2.0。 --推荐
- sarge - Subprocesses的另一个封装。
- sh - 一个全面的Python子程序替代品。 --推荐
队列(Queue)
用于处理事件和任务队列的库。
- celery - 基于分布式消息传递的异步任务队列/作业队列。 --推荐
- daramatiq - Python 3的快速、可靠的后台任务处理库。
- huey - 小任务队列。
- mrq - Queue先生 - 使用Redis&gevent的Python中的分布式工作者任务队列。
- rq - 简单的Python作业队列。 --推荐
- simpleq - 一个简单的,无限可扩展的基于Amazon SQS的队列。
推荐系统(Recommender Systems)
用于构建推荐系统的库。
- annoy - 针对内存使用进行了优化的C ++ / Python近似最近邻居。 --推荐
- fastFM - 因式分解机器库。
- implicit - 隐式数据集协作过滤的快速Python实现。
- libffm - Field-aware因式分解机(FFM)库。
- LightFM - 一些流行推荐算法的Python实现。
- surprise - 用于构建和分析推荐系统的scikit。
- TensorRec - TensorFlow中的推荐引擎框架
重构(Refactoring)
Python的重构工具和库。
- Bicycle Repair Man - Bicycle Repair Man,一个Python的重构工具。
- Bowler - 现代 Python 的安全代码重构。
- Rope - Rope是一个Python重构库。
RESTful API
用于开发RESTful API的库。
- Django
- django-rest-framework - 功能强大且灵活的工具包,用于构建Web API。 --强烈推荐
- django-tastypie - 为Django应用程序创建美味的API。 --推荐
- Flask
- eve - 由Flask,MongoDB提供支持的REST API框架和。 --推荐
- flask-api-utils - 负责Flask的API表示和身份验证。
- flask-api - 适用于Flask的Browsable Web API。
- flask-restful - 快速构建适用于Flask的REST API。 --推荐
- flask-restless - 为使用SQLAlchemy定义的数据库模型生成RESTful API。
- Pyramid
- cornice - Pyramid的RESTful框架。
- 其他
- falcon - 一个用于构建云API和Web应用后端的高性能框架。
- hug - 一个Python3框架,用于通过HTTP干净地公开API以及带有自动文档和验证的命令行。 --推荐
- fastapi - 现代的、快速的、基于标准Python类型提示的Web框架,用于用Python 3.6+构建API。 -- 强烈推荐 中文快速入门https://www.jianshu.com/p/4d8120af7c4c
- ripozo - 快速创建REST / HATEOAS / Hypermedia API。
- sandman2 - 现有数据库驱动系统的自动化REST API。
- apistar - 为Python 3设计的智能Web API框架。--推荐
- vibora - 快速、高效、异步的Web框架,灵感来自Flask。
- sanic - 异步Python 3.7+ web server/framework | 快速构建及执行。 --推荐
RPC服务器(RPC Servers)
-
RPC兼容服务器。*
-
SimpleJSONRPCServer - 该库是JSON-RPC规范的实现。
-
SimpleXMLRPCServer - (Python标准库)简单的XML-RPC服务器实现,单线程。
-
zeroRPC - zerorpc是基于ZeroMQ和[MessagePack](http:// msgpack.org/)。 --推荐
科学(Science)
- astropy - 用于天文学的社区Python库。
- bcbio-nextgen - 为全自动高通量测序分析提供最佳实践管道。
- bccb - 收集与生物分析相关的有用代码。
- Biopython - Biopython是一套免费的生物计算工具。
- cclib - 用于解析和解释计算化学软件包结果的库。
- Color - 一种颜色科学软件包,用于实现各种颜色理论转换和算法。
- NetworkX - 适用于复杂网络的高效软件。
- NIPY - 一套神经影像工具包。 --推荐
- NumPy - 用Python进行科学计算的基础软件包。 --强烈推荐
- Open Babel - 一种化学工具箱,专门用于讲述多种化学数据的语言。
- ObsPy - 地震学的Python工具箱。
- PyDy - Python Dynamics的缩写,用于协助动态运动建模中的工作流程。
- PyMC - 马尔可夫链蒙特卡洛采样工具包。
- RDKit - Cheminformatics和机器学习软件。
- SciPy - 一个基于Python的数学,科学和工程开放源码软件生态系统。 --强烈推荐
- statsmodels - Python中的统计建模和计量经济学。 --推荐
- SymPy - 符号数学的Python库。
- Zipline - Pythonic算法交易库。 --推荐
- SimPy - 基于流程的离散事件仿真框架。 --推荐
搜索
用于索引和执行数据搜索查询的库和软件。
- django-haystack - Django模块化搜索。
- elasticsearch-dsl-py - Elasticsearch的官方高级Python客户端。
- elasticsearch-py - [Elasticsearch]的官方低级Python客户端(https: //www.elastic.co/products/elasticsearch)。
- elasticsearch-dsl-py - 官方高级 Elasticsearch Python client .
- pysolr - Apache Solr的轻量级Python包装(包括SolrCloud认知)。
- solrpy - [solr]的一个Python客户端(http://lucene.apache.org/solr/)。
- Whoosh - 快速,纯粹的Python搜索引擎库。 --推荐
序列化(Serialization)
用于序列化复杂数据类型的库
-
marshmallow - marshmallow是一个ORM / ODM /框架无关的库,用于将复杂数据类型(如对象)转换为本机Python数据类型和从本地Python数据类型转换。
-
pysimdjson - A Python bindings for simdjson.
-
python-rapidjson - A Python wrapper around RapidJSON.
-
ultrajson - 用C语言编写的快速JSON解码器和编码器。
无服务器框架(Serverless Frameworks
用于开发无服务器Python代码的框架。
- python-lambda - 用于在AWS Lambda中开发和部署Python代码的工具包。
- Zappa - AWS Lambda和API网关上部署WSGI应用程序的工具。--推荐
特殊文本格式处理(Specific Formats Processing)
一些用来解析和操作特殊文本格式的库。
通用
- tablib:处理 XLS, CSV, JSON, YAML表格数据的模块。链接
Office
-
docxtpl - 通过jinja2模板编辑docx文件
-
Marmir:把输入的Python 数据结构转换为电子表单。链接
-
openpyxl:用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。链接 --强烈推荐
-
python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。链接
-
unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。链接
-
XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。链接 -- 推荐
-
xlwings: Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。链接
-
xlwt/xlrd:读写 MS Excel 97/2000/XP/2003 XLS Excel 文件的数据和格式信息。链接
-
relatorio:输出odt和pdf的模板。链接
-
pyexcel:用于读取,操作和写入CSV,ODS,XLS,XLSX和XLSM文件数据的单一API。链接
-- 实际pandas为第一数据处理库,支持所有excel格式, 不过会依赖上面的一些库。
合并多个excel表,插件mergebooks.dll和vba可以搞定。多表统计求和VBA可以搞定,参考资料, 当然pandas会比它们更强大。
PyXLL用于在excel中用python替代VBA.
Pywin32 也可通过COM口连接excel。
-
PDFMiner:从PDF文档中抽取信息的工具。链接
-
PyPDF2:可以分割,合并和转换 PDF 页面的库。链接
-
ReportLab:快速创建富文本 PDF 文档。链接
Markdown
-
Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。链接
-
Python-Markdown:John Gruber’s Markdown 的 Python 版实现。链接
-
Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。链接
YAML
- PyYAML:Python 版本的 YAML 解析器。链接
CSV
-
csv: 标准库,csv文件读写。链接
-
csvkit:用于转换和操作 CSV 的工具。链接 -- 推荐
Archive
- unp:方便解包归档文件的命令行工具。链接
静态网站生成器(Static Site Generator)
- MkDocs:对 Markdown 友好的文档生成器。链接 -- 推荐
- makesite - 简单、轻量级、无魔法的静态网站/博客生成器(< 130行)。
- Lektor - 易于使用的静态CMS和博客引擎。
- Nikola - 静态网站和博客生成器。
- Pelican - 将Markdown或ReST用于内容,Jinja 2用于主题。 支持DVCS,Disqus。AGPL。 --强烈推荐
标签(Tagging)
- django-taggit - 简单Django的标签。
模板引擎(Template Engine)
- Genshi - 用于生成网络感知输出的Python模板工具包。
- Jinja2 - 现代和设计友好的模板语言。 -- 推荐
- Mako - Python平台的超快速和轻量级模板。
文本处理(Text Processing)
用于解析和操作文本的库。
通用
-
chardet:字符编码检测器,兼容 Python2 和 Python3。链接
-
difflib:(Python 标准库)帮助我们进行差异化比较。链接
-
ftfy:让Unicode文本更完整更连贯。链接
-
hashids:在 Python 中实现 hashids 。链接
-
fuzzywuzzy:模糊字符串匹配。链接 --推荐
-
Levenshtein:快速计算编辑距离以及字符串的相似度。链接
-
pangu.py - Spacing texts for CJK and alphanumerics.
-
pyfiglet:pyfiglet -figlet 的 Python实现。链接
-
shortuuid:生成器库,用以生成简洁的,明白的,URL 安全的 UUID。链接
-
unidecode:Unicode 文本的 ASCII 转换形式 。链接
-
uniout:打印可读的字符,而不是转义的字符串。链接
-
xpinyin:把汉字转换为拼音的库。链接
-
pypinyin :把汉字转换为拼音的库。链接
-
simplejson:Python的JSON编码、解码器。链接
-
smassedit:Python的sed。链接
Slugify
-
awesome-slugify:一个 Python slug 化库,可以保持 Unicode。链接
-
python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。链接
-
unicode-slugify:slug 工具,可以生成 unicode slugs ,需要依赖 Django 。链接
解析器
-
phonenumbers:解析,格式化,储存,验证国际电话号码。链接
-
PLY:lex 和 yacc 解析工具的 Python 实现。链接
-
Pygments:通用语法高亮工具。链接 --强烈推荐
-
pyparsing:生成通用解析器的框架。链接
-
python-nameparser:把人名分解为几个独立的部分。链接
-
python-user-agents:浏览器 user agent 解析器。链接
-
sqlparse:无验证的 SQL 解析器。官网链接
第三方 API(Third-party APIs)
用来访问第三方 API的库。 参见: List of Python API Wrappers and Libraries。 链接
-
apache-libcloud:为各种云设计的 Python 库。链接
-
boto3:Amazon Web Services 的 Python 接口。链接
-
django-wordpress:WordPress models and views for Django.链接
-
facebook-sdk:Facebook 平台的 Python SDK.链接
-
facepy:Facepy 让和 Facebook's Graph API 的交互变得更容易。链接
-
gmail:Gmail 的 Python 接口。链接
-
google-api-python-client:Python 用的 Google APIs 客户端库。链接
-
gspread:Google 电子表格的 Python API.链接
-
twython:Twitter API 的封装。链接
URL处理(URL Manipulation)
解析URLs的库
-
furl:处理 URL 更简单小型 Python 库。链接
-
purl:简单的,不可变的URL类,具有简洁的 API 来进行询问和处理。链接
-
pyshorteners:纯 Python URL 缩短库。链接
-
shorturl:生成短小 URL 和类似 http://bit.ly 短链的Python 实现。链接
-
webargs:解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado和 Pyramid。链接
Video
用来操作视频和GIF的库。
- moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。链接
WSGI 服务器(WSGI Servers)
兼容 WSGI 的 web 服务器
-
gunicorn:Pre-forked, 部分是由 C 语言编写的。链接 --推荐
-
uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务, 由 C 语言编写。链接
-
bjoern:异步,非常快速,由 C 语言编写。链接
-
fapws3:异步 (仅对于网络端),由 C 语言编写。链接
-
meinheld:异步,部分是由 C 语言编写的。链接
-
netius:异步,非常快速。链接
-
paste:多线程,稳定,久经考验。链接 --推荐
-
waitress:多线程, 是它驱动着 Pyramid 框架。链接
-
Werkzeug:一个 WSGI 工具库,驱动着 Flask ,而且可以很方便大嵌入到你的项目中去。链接 --推荐
网页内容提取(Web Content Extracting)
用于进行网页内容提取的库。
-
Haul:可以扩展的图像爬取工具。链接
-
html2text:将 HTML 转换为 Markdown 格式文本链接
-
lassie:人性化的网页内容检索库。链接
-
micawber:一个小型网页内容提取库,用来从 URLs 提取富内容。链接
-
newspaper:使用 Python 进行新闻提取,文章提取以及内容策展。链接 --推荐
-
opengraph:用来解析开放图形协议的 Python模块。链接
-
python-goose:HTML内容/文章提取器。链接
-
python-readability:arc90的易读性工具的移植。链接
-
request-html - Pythonic HTML解析。
-
sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。链接
-
textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等。链接
网络爬虫(Web Crawling)
2018最佳人工智能数据采集(爬虫)工具书下载
-
Scrapy:快速高级的屏幕爬取及网页采集框架。链接 --强烈推荐
-
cola:高层分布式爬虫框架。链接
-
Demiurge:基于PyQuery 的爬虫微型框架。链接
-
feedparser:通用 feed 解析器。链接
-
Grab:站点爬取框架。链接
-
MechanicalSoup:用于自动和网络站点交互的 Python 库。链接
-
portia:Scrapy 可视化爬取。链接 --推荐
-
pyspider:一个强大的爬虫系统。链接 --强烈推荐
-
RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。链接
-
MechanicalSoup:用于自动和网络站点交互的 Python 库。链接
Web 框架(Web Frameworks)
全栈 Web 框架。
-
Django:Python 界最流行的 web 框架。链接 wesome-django系列 awesome-django --强烈推荐
- awesome-django
- awesome-django
-
Flask:Python 微型框架。链接 awesome-flask系列 链接 --强烈推荐 python web框架第一名
- awesome-flask
-
pyramid:一个小巧,快速,接地气的开源Python web 框架。链接 awesome-pyramid系列 链接
-
Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。链接 --推荐
-
CherryPy:一个极简的 Python web 框架,支持HTTP/1.1 协议且具有WSGI 线程池。链接
-
sanic:python3 快速的web服务器,类似flask。链接 --推荐
-
web.py:既简单,又强大的web 框架。链接
-
TurboGears:易于扩展的全栈微框架。链接
-
web2py:全栈 web 框架和平台,用于安全数据库访问的web用。链接
-
Masonite - 现代和以开发者为中心的Python网络框架。
-
Tornado - web 框架和异步网络库. 链接
WebSocket
-
AutobahnPython:WebSocket & WAMP 基于 Twisted 和 asyncio。链接
-
Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn).链接
-
django-channels:Django异步。链接
-
django-socketio:Django WebSocket。链接
-
WebSocket-for-Python:为Python2/3 以及 PyPy 编写的 WebSocket 客户端和服务器库。链接
监控
python应用性能监控工具简介 https://china-testing.github.io/python_monitor.html
- sentry Sentry is cross-platform application monitoring, with a focus on error reporting. https://sentry.io 推荐
- Graphite 存储时间序列数据,并通过Django Web应用程序在图形中显示它们。
Services
Online tools and APIs to simplify development.
Continuous Integration
Also see awesome-CIandCD.
- CircleCI - A CI service that can run very fast parallel testing.
- Travis CI - A popular CI service for your open source and private projects. (GitHub only)
- Vexor CI - A continuous integration tool for private apps with pay-per-minute billing model.
- Wercker - A Docker-based platform for building and deploying applications and microservices.
Code Quality
- Codacy - Automated Code Review to ship better code, faster.
- Codecov - Code coverage dashboard.
- CodeFactor - Automated Code Review for Git.
- Landscape - Hosted continuous Python code metrics.
- PEP 8 Speaks - GitHub integration to review code style.
Resources
Where to discover new Python libraries.
Podcasts
- From Python Import Podcast
- Podcast.init
- Python Bytes
- Python Testing
- Radio Free Python
- Talk Python To Me
- Test and Code
- @codetengu
- @getpy
- @importpython
- @planetpython
- @pycoders
- @pypi
- @pythontrending
- @PythonWeekly
- @TalkPython
- @realpython
Websites
- /r/CoolGithubProjects
- /r/Python
- Awesome Python @LibHunt
- Django Packages
- Full Stack Python
- Python Cheatsheet
- Real Python
- The Hitchhiker’s Guide to Python
- Ultimate Python study guide
- Python ZEEF
- Python 开发社区
- Real Python
- Trending Python repositories on GitHub today
- Сообщество Python Программистов
- Pythonic News
Weekly
- CodeTengu Weekly 碼天狗週刊
- Import Python Newsletter
- Pycoder's Weekly
- Python Weekly
- Python Tricks
持续更新
wechat: pythontesting
Websites
- /r/CoolGithubProjects
- /r/Python
- Awesome Python @LibHunt
- Django Packages
- Full Stack Python
- Python Cheatsheet
- Python Hackers
- Python ZEEF
- Python 开发社区
- Real Python
- Trending Python repositories on GitHub today
- Сообщество Python Программистов
Weekly
- CodeTengu Weekly 碼天狗週刊
- Import Python Newsletter
- Pycoder's Weekly
- Python Weekly
- Python Tricks
- Liszt
- returns
- dephell
- redash
- xhtml2pdf
- PrettyErrors
Liszt
Liszt是一款利用Python开发,用于项目创建和管理的开源工具。
它的出现,旨在替代知名的Trello。
在Liszt中,你可以创建可移动的卡片,设置项目截止日期,添加详情,把信息附加在卡片上。
甚至,可以手动执行任务。
它的GUI界面是利用Qt开发,数据存储在Sqlite3数据库文件中。
它的使用非常简单,克隆代码后,直接执行python main.py即可。
returns
函数返回值,在任何编程语言中都非常常见。
returns就是这样一款,让函数返回更加有意义,保障输入正确、安全的工具,它具有如下特性:
- 将函数式编程带入Python领域
- 提供大量方法来编写声明性业务逻辑
- 加强架构
- 提供类型安全的接口
- 使得代码读写更加简单
- 易于入门:包含大量文档,测试和教程
安装
示例
在这段代码中,实现了一种干净,安全和声明性的方式来实现我们的业务需求:
- 我们从发出请求开始,该请求随时可能失败
- 如果请求成功,则解析响应
- 然后返回结果
对比于返回常规值,这种方式更加安全、简洁。
DepHell
DepHell是一款Python项目管理工具。
目前,Python语言的项目管理工具层出不穷,pip、pipenv等。
相对于这些已经有一定名气的项目管理工具,dephell具有诸多优势:
- 不限定格式,可以和setup.py、requirements.txt、Pipfile、poetry等结合使用;
- 在任何项目上使用你喜欢的工具;
- 易于扩展,可以轻松地通过新格式和命令进行扩展;
- 对开发者友好,DepHell具有一个庞大的生态系统,也具有独立的库,因此您只能使用DepHell所需的部分。
除了这些,DepHell还具有智能解析依赖、支持异步、支持多环境等优势。
redash
redash旨在让任何人,无论技术水平如何,都能够轻松利用数据的力量。
通过redash,你可以用于分析、查询、可视化、共享来自任何数据源的数据。
redash具有如下特性:
- 基于浏览器:浏览器中的所有内容,均带有可共享的URL
- 易用性:无需掌握复杂软件即可立即处理数据
- 查询编辑器:使用架构浏览器快速组成SQL和NoSQL查询并自动完成
- 可视化和仪表板:通过拖放创建漂亮的可视化文件,并将它们组合成一个仪表板
- 共享:通过共享可视化文件及其相关查询轻松进行协作,从而实现对报告和查询的同行审阅
- 告警:定义条件并在数据更改时立即收到告警
- REST API:可以通过REST API使用UI进行的所有操作
- 对数据源的广泛支持:可扩展的数据源API,支持多种数据库
xhtml2pdf
xhtml2pdf是一款利用ReportLab将HTML转换为PDF的Python库。
在知识整理和分享过程中,PDF的应用需求很多。
以我为例,习惯于使用Markdown进行日常的编辑写作,如果要分享给大家,就需要进行格式转换。
但是,Markdown往往不能直接转换成PDF,需要经过Markdown->html->PDF整个过程。
这时候,xhtml2pdf的价值就凸显出来了。
xhtml2pdf是基于Python,ReportLab Toolkit,html5lib和PyPDF2开发的HTML->PDF转换器。
该工具的主要优点是,具有HTML和CSS之类的网络技能的用户无需学习新技术即可非常快速地生成PDF模板。
示例
PrettyErrors
最后一款,大杀器来了!
当我看到PrettyErrors这款工具时,有一种心情舒畅的感觉。
忍受了多年的问题,终于迎来了解决方案。
报错信息,在开发过程中会经常接触到,以我的开发感受为例,报错信息是很令人头疼的部分。
它蕴含了很多有价值的信息,但是可读性又非常差。每次定位问题的过程中,都让我备受煎熬。
PrettyErrors能够让异常和报错信息更加清晰可见,提升它的可读性。
配置
如果希望每次运行python脚本时都使用pretty_errors,则必须将其添加到python启动过程中:
然后,来看一下效果,