python资源大全中文版
awesome-python是Vinta发起维护的Python资源列表,内容包括:WEB框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由“开源前哨”和“python开发者”微信公号团队维护更新.
本项目的参与者
- 维护者:「开源前哨」和「Python开发者」微信公号团队那就是。“开源前哨”会定期在知乎专栏分享最新、有趣和热门的开源项目,每个项目都有详细的介绍和示例.传送门:https://www.zhihu.com/column/c_1317124962785062912
- 贡献者:唐尤华、qtvspa、艾凌风、Namco、Daetalus、黄利民、atupal、彩虹、木头lbj、Beyondwu、cissoid、李广胜、polyval、冰斌、赵叶宇、лStalgic、硕恩、strongit、yuukilp、chenjiandongx、autopenguin、visonforcoding、Super赛亚人、Since-future、knktc、zhucebuliaopx、wardseptember
注:名单不分排名,不定期补充更新
资源列表
环境管理
管理Python版本和环境的工具
- p:非常简单的交互式Python版本管理工具.
- pyenv:简单的Python版本管理工具.
- Vex:可以在虚拟环境中执行命令。
- virtualenv:创建独立Python环境的工具.
- virtualenvwrapper:Virtualenv的一组扩展。
- buildout:在隔离环境初始化后使用声明性配置管理。
包管理
管理包和依赖的工具.
- pip:Python包和依赖关系管理工具。
- pip-tools:保证Python包依赖关系更新的一组工具.
- PyPI:Python正式的第三方包软件存储库。
- pipenv:Python官方推荐的新一代包管理工具。
- poetry:可完全取代setup.py的包管理工具。
- conda:跨平台的Python二进制包管理工具.
- Curdling:管理Python包的命令行工具.
- wheel:python分发的新标准,意在取代蛋。
包仓库
本地pyi仓库服务和代理.
- warehouse:下一代pypi.
- bandersnatch:Pypa提供的pypi镜像工具.
- devpi:Pypi服务和打包/测试/分发工具.
- localshop:本地pypi服务(自定义包并且自动对pypi镜像)。
分发
打包为可执行文件以便分发.
- PyInstaller:将python程序转换成独立的执行文件(跨平台)。
- cx_Freeze:将Python程序转换为带有一个动态链接库的可执行文件.
- dh-virtualenv:构建并将Virtualenv虚拟环境作为一个debian包来发布。
- Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。
- py2app:将Python脚本变为独立软件包(MacOSX)。
- py2exe:WindowsPython脚本变为独立软件包(Windows.
- pynsist:一个用来创建视窗安装程序的工具,可以在安装程序中打包Python本身.
- pyarmor:一个用于加密Python脚本的工具,也可以将加密后的脚本绑定到固件上,或设置已加密脚本的有效期.
- shiv:一个命令行工具,可用于构建完全独立的Zip应用(PEP441所描述的那种),同时包含了所有的依赖项.
构建工具
将源码编译成软件.
- buildout:一个构建系统,从多个组件来创建,组装和部署应用。
- BitBake:针对嵌入式linux的类似make的构建工具.
- fabricate:对任何语言自动找到依赖关系的构建工具。
- PlatformIO:多平台命令行构建工具。
- PyBuilder:纯Python实现的持续化构建工具.
- SCons:软件构建工具。
交互式解析器
交互式Python解析器.
- IPython:功能丰富的工具,非常有效的使用交互式python。
- bpython:界面丰富的Python解析器.
- ptpython:高级交互式Python解析器,构建于python-prompt-toolkit之上.
- Jupyter Notebook (IPython):一个能够让你最大限度地以交互式方式使用Python的丰富工具包.
文件
文件管理和MIME(多用途的网际邮件扩充协议)类型检测.
- aiofiles书名:基于Asyncio,提供文件异步操作.
- imghdr:(Python标准库)检测图片类型.
- mimetypes:(Python标准库)将文件名映射为MIME类型.
- path.py:对os.Path进行封装的模块.
- pathlib:(Python3.4+标准库)跨平台的、面向对象的路径操作库。
- python-magic:文件类型检测的第三方库libMagic的Python接口。
- Unipath:用面向对象的方式操作文件和目录。
- watchdog:管理文件系统事件的接口和外壳工具。
- PyFilesystem2:Python的文件系统抽象层。
日期和时间
操作日期和时间的类库.
- arrow:更好的Python日期时间操作类库.
- Chronyk:Python3的类库,用于解析手写格式的时间和日期。
- dateutil:python date time模块的扩展。
- delorean:解决Python中有关日期处理的棘手问题的库.
- maya:人性化的时间处理库。
- moment:一个用来处理时间和日期的Python库.灵感来自于Moment.js.
- pendulum:一个比箭头更具有明确的,可预测的行为的时间操作库。
- PyTime:一个简单易用的Python模块,用于通过字符串来操作日期/时间.
- pytz:现代以及历史版本的世界时区定义。将时区数据库引入python。
- when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。
- dateutil:Python标准包datetime的扩展.
- moment:一个处理日期/时间的库,灵感来自Moment.js那就是。
- pytz:支持跨平台时区计算,并将tz database引入python。
文本处理
用于解析和操作文本的库.
- 通用
- chardet字符编码检测器,兼容Python2和Python3.
- difflib:(Python标准库)帮助我们进行差异化比较.
- ftfy:让unicode文本更完整更连贯。
- fuzzywuzzy:模糊字符串匹配。
- Levenshtein:快速计算编辑距离以及字符串的相似度。
- pangu.py:在中日韩语字符和数字字母之间添加空格。
- pypinyin:汉字拼音转换工具Python版.
- shortuuid:一个生成器库,用以生成简洁的,明白的,url安全的uuid。
- simplejson:Python的Json编码、解码器.
- unidecode:unicode文本的ascii转换形式。
- uniout:打印可读的字符,而不是转义的字符串。
- xpinyin:一个用于把汉字转换为拼音的库。
- pyfiglet:Figlet的Python实现.
- flashtext:一个高效的文本查找替换库。
- textdistance:支持30多种算法来计算序列之间的距离。
- Slug化
- awesome-slugify:一个Python slug化库,可以保持unicode。
- python-slugify:python slug化库,可以把unicode转化为ASCII.
- unicode-slugify:一个slug工具,可以生成unicode slugs,需要依赖django。
- 解析器
- phonenumbers:解析,格式化,储存,验证电话号码。
- python-phonenumbers:解析,格式化,存储,校验国际电话号码。
- PLY:lex和yacc解析工具的python实现.
- Pygments:通用语法高亮工具。
- pyparsing:生成通用解析器的框架。
- python-nameparser:把一个人名分解为几个独立的部分。
- python-user-agents:浏览器用户代理解析器。
- sqlparse:一个无验证的sql解析器。
特殊文本格式处理
一些用来解析和操作特殊文本格式的库.
- 通用
- tablib:一个用来处理中表格数据的模块。
- 办公室
- Marmir:把输入的Python数据结构转换为电子表单.
- openpyxl:一个用来读写Excel2010xlsx/xlsm/xltx/xltm文件的库。
- pyexcel:一个提供统一接口,用来读写,操作Excel文件的库。
- python-docx:读取,查询以及修改Microsoft word2007/2008docx文件。
- python-pptx:可用于创建和修改ppt文件的python库.
- relatorio:模板化OpenDocument文件。
- unoconv网址:在libreoffice/openoffice支持的任意文件格式之间进行转换。
- XlsxWriter:一个用于创建excel.xlsx文件的Python模块。
- xlwings:一个使得在EXCEL中方便调用Python的库(反之亦然),基于bsd协议.
- xlwt/xlrd:读写Excel文件的数据和格式信息.
- docxtpl:通过jjia2模版编辑docx文档.
- PDF格式
- 降价
- Mistune:快速并且功能齐全的纯Python实现的Markdown解析器。
- Python-Markdown作者声明:John Gruber‘s Markdown的Python版实现.
- Python-Markdown2:纯python实现的Markdown解析器,比python-Markdown更快,更准确,可扩展.
- YAML
- PyYAML:Python版本的Yaml解析器.
- CSV
- csvkit:用于转换和操作csv的工具.
- 存档
- unp:一个用来方便解包归档文件的命令行工具。
自然语言处理
用来处理人类语言的库.
- NLTK:一个先进的平台,用以构建处理人类语言数据的Python程序.
- gensim:人性化的话题建模库。
- jieba:中文分词工具。
- langid.py:独立的语言识别系统。
- Pattern:Python网络信息挖掘模块。
- SnowNLP:一个用来处理中文文本的库。
- TextBlob:为进行普通自然语言处理任务提供一致的接口。
- TextGrocery书名:一简单高效的短文本分类工具,基于libline和jieba.
- thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包。
- polyglot:支持数百种语言的自然语言处理管道。
- pytext:基于PyTouch的自然语言模型框架。
- PyTorch-NLP:一个支持快速深度学习nlp原型研究的工具包.
- spacy:python和cython中用于工业级自然语言处理的库.
- Stanza:斯坦福nlp集团的官方python库,支持60多种语言.
- funNLP:中文自然语言处理的工具和数据集。
- pkuseg-python:一个支持对不同领域进行中文分词的工具箱。
文档
用以生成项目文档的库.
- Sphinx:Python文档生成器。
- MkDocs:对Markdown友好的文档生成器。
- pdoc:一个可以替换epydoc的库,可以自动生成python库的接口文档。
- Pycco:文学编程(识字编程)风格的文档生成器。
- readthedocs书名:一个基于Sphinx/MkDocs的在线文档托管系统,对开源项目免费开放使用.
配置
用来保存和解析配置的库.
- config:logging模块作者写的分级配置模块.
- ConfigObj:INI文件解析器,带验证功能。
- ConfigParser:(Python标准库)ini文件解析器。
- profig:通过多种格式进行配置,具有数值转换功能。
- python-decouple:将设置和代码完全隔离。
- hydra:一个优雅地配置复杂应用程序的框架。
命令行工具
用于创建命令行程序的库.
- 命令行程序开发
- cement:Python的命令行程序框架。
- click:一个通过组合的方式来创建精美命令行界面的包。
- cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。
- clint:Python命令行程序工具。
- docopt:Python风格的命令行参数解析器。
- Gooey:一条命令,将命令行程序变成一个图形用户界面程序。
- python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。
- python-fire:google出品的一个基于python类的构建命令行界面的库。
- Pythonpy:在命令行中直接执行任何Python指令.
- 终端呈现方式
- asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级接口。
- alive-progress:一款新的进度条,具有实时吞吐量信息以及非常酷的动画。
- colorama:跨平台彩色终端文本。
- bashplotlib:在终端中进行基本绘图。
- rich:一个在终端中支持富文本和格式美化的Python库,同时提供了
RichHandler
日志处理程序. - tqdm:一个可在循环和命令行中使用的快速、可扩展的进度条。
- 生产力工具
- aws-cli书名:Amazon Web Services的通用命令行界面。
- caniusepython3:判断是哪个项目妨碍你你移植到Python3.
- cookiecutter:从Cookiecutters(项目模板)创建项目的一个命令行工具.
- doitlive:一个用来在终端中进行现场演示的工具。
- pyftpdlib:一个速度极快和可扩展的Python FTP服务库.
- howdoi:通过命令行获取即时的编程问题解答。
- PathPicker:从bash输出中选出文件.
- percol:向UNIX shell传统管道概念中加入交互式选择功能。
- thefuck:修正你之前的命令行指令。
- try:一个极其简单的命令行工具,用来试用Python库.
- copier:用于呈现项目模板的库和命令行实用程序。
- Invoke:用于管理面向Shell的子进程,同时支持将可执行的Python代码组织成命令行可调用的状态。
- tmuxp:tmux会话管理器.
- 高级命令行界面
- 壳
- xonsh:一种基于Python的跨平台,面向unix的外壳语言和命令提示符。
下载器
用来进行下载的库
- s3cmd:一个用来管理亚马逊S3和云前端的命令行工具。
- s4cmd:超级S3命令行工具,性能更加强劲。
- you-get网址:一个youtube/youku/niconico视频下载器,使用python3编写。
- youtube-dl:一个小巧的命令行程序,用来下载Youtube视频。
- akshare:为方便人使用而创建的金融数据接口库。
图像处理
用来操作图像的库
- pillow:Pillow是一个更加易用版的PIL那就是。
- hmap:图像直方图映射。
- imgSeek:一个使用视觉相似性搜索一组图片集合的项目。
- nude.py:裸体检测。
- python-barcode:不借助其他库在Python程序中生成条形码.
- pygram:类似instagram的图像滤镜。
- python-qrcode:一个纯Python实现的二维码生成器.
- Quads:基于四叉树的计算机艺术。
- scikit-image:一个用于(科学)图像处理的Python库.
- thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。
- wand:MagickWand 的Python绑定.MagickWand是ImageMagick的C接口。
- face_recognition:简单易用的Python人脸识别库.
- pagan:基于输入和哈希的复古风图标(头像)生成工具。
- PyMatting:支持Alpha Matting的库。
- pywal:由图像生成配色方案的工具。
- pyvips:低内存消耗且快速的图像处理库。
OCR
光学字符识别库.
- pyocr:Tesseract和楔形的一个封装.
- pytesseract:Google Tesseract OCR的一个封装.
音频
用来操作音频的库
- audiolazy:Python的数字信号处理包。
- audioread:交叉库(GStreamer+核心音频+MAD+FFmpeg)音频解码。
- beets:一个音乐库管理工具及MusicBrainz标签添加工具.
- dejavu:音频指纹提取和识别。
- django-elastic-transcoder:Django+Amazon Elastic Transcoder那就是。
- eyeD3:一个用来操作音频文件的工具,具体来讲就是包含id3元信息的mp3文件。
- id3reader:一个用来读取mp3元数据的python模块。
- m3u8:一个用来解析m3u8文件的模块。
- mutagen:一个用来处理音频元数据的Python模块.
- pydub:通过简单、简洁的高层接口来操作音频文件。
- pyechonest:Echo Nest的Python客户端接口。
- talkbox:一个用来处理演讲/信号的Python库.
- TimeSide:开源Web音频处理框架。
- tinytag:一个用来读取MP3,OGG,FLAC以及WAVE文件音乐元数据的库。
- mingus:一个高级音乐理论和曲谱包,支持MIDI文件和回放功能。
- kapre:KERAS音频处理器.
- librosa:音频音乐分析Python库.
- matchering:用于音频母带制作的库。
- pyAudioAnalysis:音频特征提取,分类,分段和应用。
- beets:一个音乐库管理器和MusicBrainz标记器.
视频
用来操作视频和gif的库.
- moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图GIF。
- scikit-video书名:Scipy视频处理常用程序.
- vidgear:强大的多线程视频处理框架。
地理位置
地理编码地址以及用来处理经纬度的库.
- GeoDjango:世界级地理图形Web框架。
- GeoIP:MaxMind GeoIP Legacy数据库的Python API。
- geojson:GeoJson的Python绑定及工具.
- geopy:Python地址编码工具箱。
- GeoIP2:GeoIP2Webservice客户端与数据库Python API。
- django-countries:一个django应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段.
- pygeoip:Python GeoIP接口。
HTTP
使用HTTP的库。
- aiohttp:基于Asyncio的异步http网络库。
- requests:人性化的HTTP请求库。
- grequests:Requests库+GEvent,用于异步HTTP请求。
- httplib2:全面的HTTP客户端库。
- treq:类似请求的Python API构建于扭曲HTTP客户端之上。
- urllib3:一个具有线程安全连接池,支持文件POST,清晰友好的HTTP库。
- httpx:下一代Python HTTP客户端。
数据库
巨蟒实现的数据库。
- pickleDB:一个简单,轻量级键值储存数据库。
- PipelineDB:流式sql数据库。
- TinyDB:一个微型的,面向文档型数据库。
- ZODB:一个Python原生对象数据库.一个键值和对象图数据库.
数据库驱动
用来连接和操作数据库的库.
- MySQL:awesome-mysql系列
- aiomysql:基于Asyncio的异步mysql数据库操作库。
- mysql-python:python的mysql数据库连接器。
- ysqlclient:mysql-python分支,支持Python3.
- oursql:一个更好的mysql连接器,支持原生预编译指令和BLOBS。
- PyMySQL:纯python mysql驱动,兼容mysql-python.
- PostgreSQL
- psycopg2:python中最流行的postgresql适配器.
- queries:mental copg2库的封装,用来和postgresql进行交互.
- txpostgres详细说明:基于Twisted的异步PostgreSQL驱动.
- 其他关系型数据库
- Nosql数据库
- asyncio-redis:基于asyncio的redis客户端(PEP3156)。
- cassandra-python-driver:Cassandra的Python驱动.
- HappyBase:一个为Apache HBase设计的,对开发者友好的库。
- Plyvel详细说明:PythonLevelDB一个快速且功能丰富的的接口。
- py2neo:Neo4j RESTful接口的Python封装客户端。
- pycassa:Cassandra的Python Thrift驱动.
- PyMongo:mongodb的官方python客户端。
- redis-py:redis的python客户端.
- telephus书名:基于Twisted的Cassandra客户端.
- txRedis书名:基于Twisted的Redis客户端.
- kafka-python:Apache Kafka Python客户端。
- 异步客户端
- motor:支持mongodb的异步python驱动程序。
ORM
实现对象关系映射或数据映射技术的库.
- 关系型数据库
- Django Models:Django的一部分.
- SQLAlchemy:Python SQL工具以及对象关系映射工具。
- awesome-sqlalchemy系列
- Peewee:一个小巧,富有表达力的orm.
- PonyORM:提供面向生成器的sql接口的orm.
- python-sql:编写python风格的sql查询.
- dataset:在数据库中存储字典,支持SQLite,mysql和postgresql。
- orator:Orator ORM,提供了一个简单而美观的ActiveRecord实现。
- orm:一个异步的orm.
- peewee:一个小但是很有表现力的orm.
- pony:提供面向生成器的sql接口的orm.
- 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.
网络框架
全栈WEB框架.
- Django:Python界最流行的Web框架。
- Flask:一个Python微型框架.
- Pyramid:一个小巧,快速,接地气的开源Python Web框架。
- Bottle:一个快速小巧,轻量级的wsgi微型Web框架。
- CherryPy详细说明:一个极简的Python web框架,服从http/1.1WSGI协议且具有线程池。
- TurboGears:一个可以扩展为全栈解决方案的微型框架。
- web.py:一个Python的Web框架,既简单,又强大。
- web2py:一个全栈Web框架和平台,专注于简单易用。
- Tornado:一个Web框架和异步网络库。
- sanic:基于Python3.5+的异步网络框架。
- starlette:一款轻量级,高性能的asgi框架.
- Masonite:以开发者为中心的现代Python Web框架.
WebSocket
网页套接字相关库。
- autobahn-python详细说明:适用于Twisted和Asyncio的Python WebSocket和Wamp.
- channels:开发者友好的django异步工具.
- websockets:一个用于构建WebSocket服务器和客户端的库,着重于正确性和简单性。
权限
允许或拒绝用户访问数据或功能的库.
- Carteblanche:站在用户和设计者角度开发的一个代码对齐模块,很好地处理了代码导航及权限。
- django-guardian:Django1.2+,实现了单个对象权限。
- django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库。
CMS
内容管理系统.
- odoo-cms书名:一个开源的,企业级cms,基于odoo.
- django-cms书名:一个开源的,企业级CMS,基于Django。
- djedi-cms书名:一个轻量级但却非常强大的Django CMS,考虑到了插件,内联编辑以及性能.
- FeinCMS:基于django构建的最先进的内容管理系统之一.
- Kotti:一个高级的,Python范的Web应用框架,基于金字塔构建。
- Mezzanine:一个强大的,持续的,灵活的内容管理平台。
- Opps书名:一个为杂志,报纸网站以及大流量门户网站设计的cms平台,基于django.
- Plone书名:一个构建于开源应用服务器Zope之上的CMS.
- Quokka:灵活,可扩展的小型CMS,基于烧瓶和MongoDB。
- Wagtail:一个django内容管理系统.
- Widgy书名:最新的cms框架,基于django.
- indico:一个功能丰富的事件管理系统,由@CERN开发.
电子商务
用于电子商务以及支付的框架和库.
- django-oscar:一个用于django的开源的电子商务框架.
- django-shop:一个基于django的店铺系统.
- Cartridge书名:一个基于Mezzanine构建的购物车应用.
- shoop:一个基于django的开源电子商务平台.
- alipay:非官方的Python支付宝接口。
- merchant:一个可以接收来自多种支付平台支付的django应用.
- money:一个货币类库。带有可选的CLDR后端本地化格式,提供可扩展的货币兑换解决方案.
- python-currencies:显示货币格式以及它的数值。
- forex-python:外汇汇率,比特币价格指数和货币换算。
- saleor:一款兼容django的电子商务平台.
RESTful API
用来开发REST风格的API的库
- 姜戈
- django-rest-framework:一个强大灵活的工具,用来构建Web API。
- django-tastypie:为django应用开发接口。
- django-formapi:为django的表单验证,创建JSONAPI。
- 烧瓶
- flask-api:为Flask开发的,可浏览WEB API。
- flask-restful:为Flask快速创建睡觉接口。
- flask-restless:为SQL AlChemy定义的数据库模型创建REST风格的API。
- flask-api-utils:为烧瓶处理接口表示和验证。
- eve:睡觉接口框架,由烧瓶,mongodb等驱动。
- 金字塔
- cornice金字塔:一个金字塔的睡觉(Sequoia Capital框架)
- 与框架无关的
- falcon:一个用来建立云接口和Web应用程序后端的高性能框架。
- sandman:为现存的数据库驱动系统自动创建睡觉接口。
- restless:框架无关的睡觉框架,基于从Tastypie学到的知识。
- ripozo:快速创建睡觉/HATEOAS/超媒体接口。
- apistar:专为Python3设计的智能Web API框架。
- fastapi:一个现代,快速,基于标准python类型注解的的Web框架,可使用python3.6+版本构建接口。
- hug:一个为纯净公开的接口打造的Python3框架。
- sandman2:为数据库驱动的系统自动生成睡觉接口。
- vibora:快速高效且支持异步的WEB框架,灵感来源于烧瓶。
验证
实现验证方案的库.
- OAuth
- authlib:一个强大的python库,用来构建oauth和openid服务端。包括:jws,jwk,jwa,jwt。
- Authomatic:简单但是强大的框架,身份验证/授权客户端。
- django-allauth:Django的验证应用.
- django-oauth-toolkit:为Django用户准备的OAuth2.
- django-oauth2-provider:为Django应用提供OAuth2接入.
- Flask-OAuthlib:oAuth 1.0/a,2.0客户端实现,供烧瓶使用。
- OAuthLib:一个OAUTH请求-签名逻辑通用、完整的实现.
- python-oauth2:一个完全测试的抽象接口。用来创建OAUTH客户端和服务端.
- python-social-auth:一个设置简单的社会化验证方式。
- rauth:oAuth1.0/a,2.0,和OFly的Python库。
- sanction:一个超级简单的OAuth2客户端实现.
- 其他
- PyJWT:JSON WEB令牌草案01。
- python-jws:JSON WEB签名草案02的实现。
- python-jwt:一个用来生成和验证JSON Web令牌的模块.
- python-jose:Python版jose实现.
模板引擎
模板生成和词法解析的库和工具.
- Jinja2:一个现代的,对设计师友好的模板引擎。
- Chameleon:XMLHTML/一个模板引擎。ZopeZpt(模仿了页面模板),进行了速度上的优化。
- Genshi:Python模板工具,用以生成Web感知的结果。
- Mako:Python平台的超高速轻量级模板。
队列
处理事件以及任务队列的库.
- celery:一个异步任务队列/作业队列,基于分布式消息传递
- daramatiq:适用于Python3的快速可靠的后台任务处理库.
- huey:小型多线程任务队列。
- mrq:一个Python的分布式Worker任务队列,使用redis和gevent。
- rq:简单的Python作业队列.
- simpleq:一个简单的,可无限扩张的,基于亚马逊sqs的队列.
搜索
对数据进行索引和执行搜索查询的库和软件.
- django-haystack:Django模块化搜索.
- elasticsearch-py:ElasticSearch的官方底层Python客户端.
- elasticsearch-dsl-py:ElasticSearch的官方高级Python客户端.
- solrpy:solr的Python客户端.
- pysolr:支持Apache Solr的轻量级Python装饰器.
- Whoosh:一个快速的纯Python搜索引擎库.
动态消息
用来创建用户活动的库.
- django-activity-stream:从你的站点行为中生成通用活动信息流。
- Stream-Framework:使用cassandra和redis创建动态消息和通知系统.
网络资源管理
管理、压缩、缩小网站资源的工具.
- django-compressor:将链接和内联的javascript或css压缩到一个单独的缓存文件中.
- django-pipeline:Django的资源包装库.
- django-storages:一个针对django的自定义存储后端的工具集合.
- fanstatic:打包、优化,并且把静态文件依赖作为Python的包来提供.
- File Conveyor:一个后台驻留的程序,用来发现和同步文件到CDNS、S3和FTP。
- Flask-Assets:帮你将Web资源整合到你的烧瓶应用程序中。
- jinja-assets-compressor:一个JINJA扩展,用来编译和压缩你的资源.
- webassets:为你的静态资源打包、优化和管理生成独一无二的缓存url。
缓存
缓存数据的库.
- Beaker:一个缓存和会话库,可以用在Web应用和独立Python脚本和应用上.
- django-cache-machine:Django模型的自动缓存和失效.
- django-cacheops:具有自动颗粒化事件驱动失效功能的orm.
- django-viewlet:渲染模板,同时具有额外的缓存控制功能。
- dogpile.cache书名:Cach是的下一代替代品,由同一作者开发.
- HermesCache详细说明:Python缓存库,具有基于标签的失效和狗皮堆效果保护功能。
- johnny-cache:Django应用缓存框架.
- pylibmc:libmemcached接口的Python封装.
- python-diskcache:sqlite和文件支持的缓存后端,具有比memcached和redis更快的查找速度.
电子邮件
用来发送和解析电子邮件的库.
- django-celery-ses网址:带有AWSES和celery的姜戈电子邮件后端。
- envelopes:供人类使用的电子邮件库。
- flanker:一个Email地址和Mime解析库。
- imbox:Python IMAP库。
- inbox.py:Python SMTP服务器。
- inbox:一个开源电子邮件工具箱。
- lamson:python风格的smtp应用服务器.
- mailjet:MailJet接口实现,用来提供批量发送邮件,统计等功能。
- marrow.mailer:高性能可扩展邮件分发框架。
- modoboa:一个邮件托管和管理平台,具有现代的、简约的WebUI。
- pyzmail:创建,发送和解析电子邮件。
- Talon:MailGun库,用来抽取信息和签名.
- yagmail:yagmail是一个gmail/smtp客户端,旨在使其尽可能简单地发送电子邮件。
- salmon:一个Python邮件服务器.
- mailer:一款高性能可扩展的邮件投递框架。
国际化
用来进行国际化的库.
url处理
解析URL的库
- furl:pythonurl一个让处理更简单小型库。
- purl:一个简单的,不可变的url类,具有简洁的接口来进行询问和处理。
- pyshorteners:一个纯Python URL缩短库。
- shorturl:生成短小url和类似bit.ly短链的Python实现。
- webargs详细说明:一个解析Http请求参数的库,内置对流行Web框架的支持,包括长颈瓶,姜戈,瓶子,龙卷风和金字塔。
超文本标记语言处理
处理HTML和xml的库。
- BeautifulSoup:以python风格的方式来对html或xml进行迭代,搜索和修改.
- bleach:一个基于白名单的HTML清理和文本链接库。
- cssutils:一个Python的css库.
- html5lib:一个兼容标准的HTML文档和片段解析及序列化库。
- lxml:一个非常快速,简单易用,功能齐全的库,用来处理HTML和XML.
- MarkupSafe:为Python实现xml/html/xhtml标记安全字符串。
- pyquery:一个解析HTML的库,类似jQuery.
- requests-html:人性化的,Pythonic的HTML解析库。
- untangle:将xml文档转换为python对象,使其可以方便的访问.
- xhtml2pdf:html/css转pdf工具.
- xmltodict:像处理JSON一样处理XML.
- WeasyPrint:用于html和css的可视化呈现引擎,并可以导出为pdf。
- xmldataset:简单xml解析.
爬取网络站点的库
- Scrapy:一个快速高级的屏幕爬取及网页采集框架。
- ScrapydWeb:一个用于Scrapyd集群管理的全功能Web UI,支持Scrapy日志分析和可视化,自动打包,定时器任务和邮件通知等特色功能。
- cola:一个分布式爬虫框架。
- Demiurge:基于PyQuery的爬虫微型框架.
- feedparser:通用Feed解析器。
- Grab:站点爬取框架。
- MechanicalSoup:用于自动和网络站点交互的Python库.
- portia:Scrapy可视化爬取.
- pyspider:一个强大的爬虫系统。
- RoboBrowser:一个简单的,Python风格的库,用来浏览网站,而不需要一个独立安装的浏览器。
网页内容提取
用于进行网页内容提取的库.
- Haul:一个可以扩展的图像爬取工具。
- html2text:将HTML转换为Markdown格式文本。
- lassie:人性化的网页内容检索库。
- micawber:一个小型网页内容提取库,用来从URL提取富内容。
- newspaper:使用Python进行新闻提取,文章提取以及内容策展.
- opengraph:一个用来解析开放内容协议(开放式图形协议)的Python模块。
- python-goose:html内容/文章提取器(Python2)。
- goose3:html内容/文章提取器(Python3)。
- python-readability:arc90公司Readability工具的Python高速端口.
- sanitize:为杂乱的数据世界带来调理性。
- sumy:一个为文本文件和HTML页面进行自动摘要的模块。
- textract:从任何格式的文档中提取文本、Word、PowerPoint、PDF、等等。
表单
进行表单操作的库.
- Deform:Python HTML表单生成库,受到了Formish表单生成库的启发。
- django-bootstrap3:集成了Bootstrap 3的Django。
- django-bootstrap4:集成了Bootstrap 4的Django.
- django-crispy-forms:一个Django应用,他可以让你以一种非常优雅且Dry(不要重复自己)的方式来创建美观的表单。
- django-remote-forms:一个平台独立的django表单序列化工具.
- WTForms:一个灵活的表单验证和呈现库。
- WTForms-JSON:一个WTForms扩展,用来处理Json数据.
数据验证
数据验证库.多用于表单验证.
- Cerberus:一个映射验证器(映射-验证器)。支持多种规则,提供归一化功能,可以方便地定制为Python风格的架构定义。
- colander:HTMLXML,JSON,一个用于对从表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统。
- kmatch:一种用于匹配/验证/筛选Python字典的语言.
- schema:一个用于对Python数据结构进行验证的库.
- Schematics:数据结构验证。
- valideer:轻量级可扩展的数据验证和适配库。
- voluptuous:一个Python数据验证库.主要是为了验证传入Python的JSON,YAML等数据。
- jsonschema:JSON Schema的Python实现,用于Json数据的验证。
序列化
复杂数据类型序列化相关库.
- marshmallow:一个轻量级的库,用于将复杂对象与简单Python数据类型相互转换.
- pysimdjson:与Python绑定的simdjson那就是。
- python-rapidjson:RapidJSON的Python封装.
- ultrajson:使用Python绑定的,用C编写的快速Json解码器和编码器.
反垃圾技术
帮助你和电子垃圾进行战斗的库.
- django-simple-captcha:一个简单、高度可定制的django应用,可以为任何django表单添加验证码.
- django-simple-spam-blocker:一个用于django的简单的电子垃圾屏蔽工具.
标记
用来进行标记的库.
- django-taggit:简单的django标记工具.
管理面板
管理界面库.
- Ajenti:一个你的服务器值得拥有的管理面板。
- django-suit:django管理界面的一个替代品(仅对于非商业用途是免费的)。
- django-xadmin:django admin的一个替代品,具有很多不错的功能。
- flask-admin:一个用于烧瓶的简单可扩展的管理界面框架.
- flower书名:一个对Celery集群进行实时监控和提供Web管理界面的工具.
- Grappelli:Django管理界面的一个漂亮的皮肤.
- Wooey:一个django应用,可以为python脚本创建Web用户界面.
- django-grappelli:拥有绚丽外观的Django Admin界面。
- django-jet:具有改进功能的现代响应式django管理界面模板.
- jet-bridge:管理面板框架,适用于任何具有良好UI的应用(例如django)。
无服务器框架
使用Python开发无服务器模型相关的库。
- python-lambda简介:在AWS Lambda开发和部署Python代码的工具包.
- Zappa:在AWSLambda和应用编程接口网关部署WSGI应用的工具。
静态站点生成器
静态站点生成器是一个软件,它把文本和模板作为输入,然后输出超文本标记语言文件。
- Pelican:使用Markdown或睡觉来处理内容,金佳2来制作主题。支持DVCS,Disqus..agpl许可.
- Cactus:为设计师设计的静态站点生成器。
- Hyde:基于jjia2的静态站点生成器.
- Nikola:一个静态网站和博客生成器。
- Tinkerer:Tinkerer是一个博客引擎/静态站点生成器,由Sphinx驱动.
- Lektor:一个简单易用的静态CMS和博客引擎.
- makesite:简单轻量的站点/博客生成器(小于130行代码)。
进程
操作系统进程启动及通信库.
- envoy:比pythonsubprocess模块更人性化.
- sarge:另一种子流程模块的封装。
- sh:一个完备的子流程替代库。
- delegator.py:人性化的Subprocesses2.0版本。
并发和并行
用以进行并发和并行操作的库.
- multiprocessing:(Python标准库)基于进程的“线程”接口.
- threading:(Python标准库)更高层的线程接口.
- eventlet:支持wsgi的异步框架.
- gevent:一个基于协程的Python网络库,使用greenlet那就是。
- Tomorrow:用于产生异步代码的神奇的装饰器语法实现。
- uvloop:在libuv之上超快速实现Asyncio事件循环.
- concurrent.futures:(Python标准库)异步执行可调用对象的高级接口.
- gevent:使用greenlet且基于协程的Python网络库.
- scoop:支持在Python中进行可伸缩并行操作.
网络
用于网络编程的库.
- asyncio:(Python标准库)异步I/O,事件循环,协程以及任务.
- trio:异步并发和I/O友好的库。
- Twisted:一个事件驱动的网络引擎。
- pulsar:事件驱动的并发框架。
- diesel:基于Greenlet的事件I/O框架。
- pyzmq:一个ZeroMQ消息库的Python封装。
- Toapi:一个轻巧,简单,快速的烧瓶库,致力于为所有网站提供接口服务。
- txZMQ详细说明:基于Twisted的ZeroMQ消息库的Python封装.
WebSocket
帮助使用WebSocket的库。
- AutobahnPython:给Python、使用的WebSocket&WAMP基于扭曲和asyncio那就是。
- Crossbar:开源统一应用路由(Autobahn上Python的WebSocket&WAMP)。
- django-socketio简介:给Django用的WebSockets.
- WebSocket-for-Python:为Python2/3以及PyPy编写的WebSocket客户端和服务器库。
Wsgi服务器
兼容wsgi的Web服务器
- gunicorn:Pre-Forked,部分是由C语言编写的。
- uwsgi:uwsgi项目的目的是开发一组全栈工具,用来建立托管服务,由C语言编写.
- bjoern:异步,非常快速,由C语言编写.
- fapws3:异步(仅对于网络端),由C语言编写.
- meinheld:异步,部分是由C语言编写的.
- netius:异步,非常快速。
- paste:多线程,稳定,久经考验。
- rocket:多线程。
- waitress:金字塔金字塔多线程,是它驱动着框架.
- Werkzeug书名:一个Wsgi工具库,驱动着烧瓶,而且可以很方便大嵌入到你的项目中去。
Asgi服务器
兼容ASGI的Web服务器。
rpc服务器
兼容rpc的服务器。
- SimpleJSONRPCServer:这个库是json-rpc规范的一个实现。
- SimpleXMLRPCServer:(pythonrpc标准库)简单的xml-rpc服务器实现,单线程.
- zeroRPC:ZERPC是一个灵活的rpc实现,基于ZeroMQ和MessagePack那就是。
- RPyC(远程Python调用):适用于Python的透明且对称的rpc库。
密码学
- cryptography:这个软件包意在提供密码学基本内容和方法提供给Python开发者.
- hashids:在Python中实现hashids那就是。
- Paramiko:SSHv2Python(2.6+,3.3+),协议的,提供客户端和服务端的功能.
- Passlib:安全密码存储/哈希库。
- PyCrypto:Python密码学工具箱。
- PyNacl:网络和密码学(Nacl)库的python绑定.
图形用户界面
用来创建图形用户界面程序的库.
- curses:内建的ncurses封装,用来创建终端图形用户界面.
- enaml:使用类似Qml的Declaratic语法来创建美观的用户界面.
- kivy:一个用来创建自然用户交互(用户界面)应用程序的库,可以运行在windows,linux,mac OS X,android以及iOS平台上。
- pyglet:一个Python的跨平台窗口及多媒体库.
- PyQt:跨平台用户界面框架Qt的Python绑定,支持Qt v4和Qt v5。
- PySide:跨平台用户界面框架Qt的Python绑定,支持Qt v4。
- Tkinter:tkinter是Python GUI的一个事实标准库.
- Toga:一个Python原生的,操作系统原生的图形用户界面工具包。
- urwid:一个用来创建终端图形用户界面应用的库,支持组件,事件和丰富的色彩等。
- wxPython:wxPython是wxWidgets C++类库和Python语言混合的产物。
- PyGObject:Glib/gobject/gio/gtk+(gtk+3)的Python绑定。
- Flexx详细说明:Flexx是一个纯Python语言编写的用来创建图形用户界面程序的工具集,它使用Web技术进行界面的展示。
- Eel:用于制作简单离线超文本标记语言/JS图形用户界面应用的库。
- PySimpleGUI:tkinter,qt,wxPython和remi的封装。
- pywebview:围绕网页视图组件的轻量级跨平台的原生包装。
- DearPyGui:一个简单的可使用GPU加速的Python GUI框架。
游戏开发
超赞的游戏开发库.
- Cocos2d:Cocos2D是一个用来开发2D游戏,示例和其他图形/交互应用的框架。基于侏儒。
- Panda3D:由迪士尼开发的3D游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用C++编写,针对Python进行了完全的封装。
- PygamePYGAME是一组PYTHON模块,用来编写游戏.
- PyOgre:OGRE 3D渲染引擎的Python绑定,可以用来开发游戏和仿真程序等任何3D应用。
- PyOpenGL:opengl的python绑定及其相关接口。
- PySDL2:sdl2库的封装,基于cypes。
- RenPy:一个视觉小说(视觉小说)引擎。
- Arcade:一个现代Python框架,用于制作具有引人入胜的图形与声音的游戏.
- Harfang3D:支持3D,VR与游戏开发的Python框架。
日志
用来生成和操作日志的库.
- logging:(python标准库)为python提供日志功能.
- logbook:记录库的替代品。
- Eliot:为复杂的和分布式系统创建日志。
- Raven:Secry的Python客户端.
- Sentry:实时记录和收集日志的服务器。
- sentry-python:python版哨兵sdk。
- loguru:旨在带来愉悦体验的Python日志库.
- structlog:结构化日志,让日志变得简单。
测试
进行代码库测试和生成测试数据的库.
- 测试框架
- unittest:(Python标准库)单元测试框架.
- nose:Nose扩展了Unittest的功能。
- nose2
nose
的继任者,基于unittest2
那就是。 - contexts:一个Python3.3+的BDD框架。受到C#机器.Specification的启发.
- hypothesis假设:是一个基于先进的QuickCheck风格特性的测试库。
- mamba:Python的终极测试工具,拥护bdd。
- pyshould:应该是风格的断言,基于吗?PyHamcrest那就是。
- pytest:一个成熟的全功能Python测试工具.
- green:干净,多彩的测试工具。
- pyvows:bdd风格的测试工具,受Vows.js的启发。
- Robot Framework:一个通用的自动化测试框架。
- tox:自动化测试与发布的工具,支持多个Python版本.
- GUI/WEB测试
- 模拟测试
- 对象工厂
- factoryboy:一个Python用的测试固件(测试装置)替代库。
- mixer:另外一个测试固件(测试夹具)替代库,支持姜戈,烧瓶,SQL炼金术,Peewee等。
- modelmommy:为django测试创建随机固件.
- 代码覆盖率
- 伪数据
- 错误处理
- FuckIt.py:使用最先进的技术来保证你的Python代码无论对错都能继续运行.
渗透测试
渗透测试相关框架和工具.
代码分析和Lint工具
进行代码分析、解析和操作代码库的库和工具.
- 代码分析
- coala:语言独立和易于扩展的代码分析应用程序。
- code2flow:把你的python和javascript代码转换为流程图.
- pycallgraph:这个库可以把你的Python应用的流程(调用图)进行可视化.
- pysonar2:Python类型推断和检索工具。
- prospector:分析Python代码的工具.
- vulture:用于发现和分析无效Python代码的工具.
- 皮棉工具
- Flake8:模块化源码检查工具,提供与
pycodestyle
、pyflakes
、McCabe相关的装饰器. - Pylint:一个完全可定制的源码分析器。
- YAPF:google的python代码格式化工具。
- pylama:python和javascript的代码审查工具。
- wemake-python-styleguide:有史以来最严格的Python代码审查工具.
- Flake8:模块化源码检查工具,提供与
- 代码格式化
- 静态类型检查,也可以参考awesome-python-typing
- mypy:在编译期间检查变量类型。
- pyre-check:性能类型检查。
- typeshed:带有静态类型的Python库存根的集合.
- 静态类型注释生成器
- MonkeyType:通过收集运行时的类型来为Python生成静态类型注释的系统.
- pyannotate:自动生成符合pep-484的注解。
- pytype:检查和推断Python代码中的类型,无需添加注解.
调试工具
用来进行代码调试的库.
- 调试器
- 追踪器
- lptrace:为Python程序打造的strace那就是。
- manhole:调试Unix套接字连接,并显示所有线程的堆栈跟踪和交互式提示。
- pyringe:能够附加到python进程并将代码注入python进程的调试器.
- python-hunter:一个灵活的代码追踪工具包。
- 性能分析器
- lineprofiler:逐行性能分析。
- Memory Profiler、内存:监控Python代码的内存使用.
- profiling:一个交互式Python性能分析工具.
- py-spy:Python程序采样分析器,使用实现.
- pyflame:用于Python的跟踪分析器.
- vprof:视觉Python分析器.
- 其他
- pyelftools:解析和分析elf文件以及Dwarf调试信息.
- python-statsd:statsd服务器的Python客户端.
- django-debug-toolbar:为django显示各种调试信息.
- django-devserver:一个django运行服务器的替代品.
- flask-debugtoolbar:django-DEBUG-工具栏的Flask版。
- icecream:通过一个简单的函数调用检查变量、表达式和程序执行情况。
科学计算和数据分析
用来进行科学计算和数据分析的库.
- astropy:一个天文学Python库.
- bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程。
- bccb:生物分析相关代码集合。
- Biopython:Biopython是一组可以免费使用的用来进行生物计算的工具.
- blaze:NumPy和Pandas的大数据接口.
- cclib:一个用来解析和解释计算化学软件包输出结果的库。
- NetworkX:一个为复杂网络设计的高性能软件。
- Neupy:执行和测试各种不同的人工神经网络算法。
- NumPy:使用Python进行科学计算的基础包.
- Open Babel:一个化学工具箱,用来描述多种化学数据。
- Open Mining:使用Python挖掘商业情报(BI)(Pandas Web接口)。
- orange:通过可视化编程或Python脚本进行数据挖掘,数据可视化,分析和机器学习.
- Pandas:提供高性能,易用的数据结构和数据分析工具。
- PyDy简介:是的缩写,用来为动力学运动建模工作流程提供帮助,基于和matplotlib.
- PyMC:马尔科夫链蒙特卡洛采样工具。
- RDKit:化学信息学和机器学习软件。
- SciPy:由一些基于python,用于数学,科学和工程的开源软件构成的生态系统.
- statsmodels:统计建模和计量经济学。
- SymPy:一个用于符号数学的Python库.
- zipline:一个Python算法交易库.
- Bayesian-belief-networks:优雅的贝叶斯理念网络框架。
- AWS Data Wrangler:aws平台上使用的熊猫。
- Optimus:在使用PySpark时,让敏捷数据科学工作流程变得简单.
- Colour:大量色彩理论转换和算法的实现。
- Karate Club:用于图形结构化数据的无监督机器学习工具箱。
- NIPY:神经影响学工具箱集合。
- ObsPy:地震学Python工具箱.
- QuTiP:Python版Quantum工具箱.
- SimPy:一个基于过程的离散事件模拟框架。
数据可视化
进行数据可视化的库.参见:awesome-javascript那就是。
- matplotlib:一个Python2D绘图库。
- bokeh:用Python进行交互式Web绘图。
- ggplot:ggplot2给R提供的接口的python版本。
- plotly:协同python和matplotlib工作的Web绘图库。
- pyecharts书名:基于百度Echarts的数据可视化库.
- pygal:一个Python SVG图表创建工具.
- pygraphviz:Graphviz的Python接口.
- PyQtGraph:交互式实时2D/3D/图像绘制及科学/工程学组件。
- SnakeViz:一个基于浏览器的PythoncProfile模块输出结果查看工具。
- vincent:把python转换为织女星语法的转换工具.
- VisPy:基于opengl的高性能科学可视化工具.
- Altair:用于Python的声明式统计可视化库.
- bqplot书名:Jupyter Notebook的交互式绘图库.
- Cartopy:具有matplotlib支持的python制图库.
- Dash书名:构建在flask、Reaction和Ploly之上,旨在用于分析WEB应用程序.
- diagrams:用图表作为代码。
- plotnine:基于ggplot2的python图形语法。
- PyGraphviz:Graphviz的Python接口.
- Seaborn:使用Matplotlib进行统计数据可视化.
计算机视觉
计算机视觉相关库.
- OpenCV:开源计算机视觉库。
- pyocr:Tesseract和楔形的包装库.
- pytesseract:Google Tesseract OCR的另一包装库.
- SimpleCV:一个用来创建计算机视觉应用的开源框架。
- EasyOCR:支持40多种语言的即用型光学字符识别。
- Face Recognition:简单的面部识别库。
- Kornia:Pytorch的开源差异化计算机视觉库.
- tesserocr:另一个简单的,兼容枕头的
tesseract-ocr
装饰器,可用于ocr接口。
深度学习
神经网络和深度学习相关框架.也可以参考awesome-deep-learning那就是。
- Caffe:一个Caffe的Python接口.
- Caffe2:一个轻量级的,模块化的,可扩展的深度学习框架。
- keras:以TensorFlow/THEANO/CNTK为后端的深度学习封装库,快速上手神经网络.
- MXNet:一个高效和灵活的深度学习框架。
- Pytorch:一个具有张量和动态神经网络,并有强大图形处理器加速能力的深度学习框架。
- SerpentAI:游戏代理框架,可使用任意视频游戏作为深度学习沙箱。
- Theano:一个快速数值计算库。
- TensorFlow:谷歌开源的最受欢迎的深度学习框架。
- skflow:一个TensorFlow的简化接口(模仿科学工具包-学习)。
- hebel:gpu加速的深度学习库。
- pydeep:Python深度学习库。
机器学习
机器学习相关库,也可以参考awesome-machine-learning那就是。
- Crab:灵活、快速的推荐引擎。
- NuPIC:智能计算numenta平台.
- pattern:Python网络挖掘模块。
- PyBrain:另一个Python机器学习库.
- Pylearn2:一个基于Theano的机器学习库.
- python-recsys:一个用来实现推荐系统的Python库.
- scikit-learn书名:基于Science Py构建的机器学习Python模块.
- vowpalporpoise:轻量级Vowpal Wabbit的Python封装.
- gym:开发和比较强化学习算法的工具包。
- H2O:开源快速可扩展的机器学习平台。
- Metrics:机器学习的评估指标。
- vowpal_porpoise:Python版Vowpal Wabbit装饰器.
- xgboost:可扩展,便携式和分布式梯度提升库。
- MindsDB:MindsDB是现有数据库的开源AI层,可让使用标准查询轻松地进行开发,训练和部署最新的机器学习模型。
推荐系统
用于构建推荐系统的相关库.
- annoy:对C++/Python实现的近似近邻算法进行了内存优化。
- fastFM:因式分解机相关库。
- implicit:对隐式数据集进行协作过滤的快速Python实现.
- libffm:场感知因式分解机器(Ffm)相关库。
- lightfm:很多流行的推荐算法的Python实现.
- spotlight书名:使用pytorch实现的深度推荐模型.
- Surprise:用于构建和分析推荐系统的科学工具。
- tensorrec:TensorFlow的推荐引擎框架。
分布式计算
分布式计算相关的框架和库.
- dpark:电光的Python克隆版,一个类似MapReduce的框架。
- dumbo:这个python模块可以让人轻松的编写和运行hadoop程序。
- luigi:这个模块帮你构建批处理作业的复杂流水线。
- mrjob:在hadoop或亚马逊网络服务上运行MapReduce任务。
- dask:用于分析计算的灵活的并行计算库。
- PySpark:电光的Python接口。
- Ray:一个用于并行和分布式Python的系统,它统一了机器学习生态系统.
- faust:一个Python流处理库,核心思想来源Kafka Streams那就是。
- streamparse:运行针对事实数据流的Python代码.集成了Apache Storm那就是。
函数式编程
使用Python进行函数式编程.
- CyToolz:Toolz的cython实现:高性能函数式工具.
- fn.py:在Python中进行函数式编程:实现了一些享受函数式编程缺失的功能.
- funcy:炫酷又实用的函数式工具。
- Toolz:一组用于迭代器,函数和字典的函数式编程工具。
- Coconut:为了简单、优雅、更Pythonic的函数式编程而构建的Python变体.
- more-itertools:比
itertools
拥有更多的可迭代对象的操作方式. - returns:一个类型安全的单元、转换器与合成工具集合。
第三方接口
用来访问第三方接口的库。参见:List of Python API Wrappers and Libraries那就是。
- apache-libcloud:一个为各种云设计的Python库.
- boto3简介:Amazon Web Services的Python接口.
- django-wordpress简介:django的wordpress模型与视图.
- facebook-sdk:facebook平台的Python SDK。
- facepy:faceepy让和facebook的Graph API的交互变得更容易。
- gmail:gmail的python接口.
- google-api-python-client:python用的google apis客户端库。
- gspread:GOOGLE电子表格的Python API。
- twython:推特接口的封装。
DevOps工具
用于设备运维的软件和库。
- Ansible:一个非常简单的IT自动化平台。
- SaltStack:基础设施自动化和管理系统。
- OpenStack:用于构建私有和公有云的开源软件。
- Docker Compose书名:快速,分离的开发环境,使用DOCKER.
- Fabric:一个简单的,Python风格的工具,用来进行远程执行和部署。
- cuisine:为Fabric提供一系列高级函数。
- Fabtools:一个用来编写超赞的Fabric文件的工具。
- gitapi:GIT的纯Python API。
- hgapi:Mercurial的纯Python API。
- honcho:Foreman的Python克隆版,用来管理基于Procfile的应用.
- pexpect:在一个伪终端中控制交互程序,就像GNU期望一样。
- psutil:一个跨平台进程和系统工具模块。
- supervisor:UNIX的进程控制系统。
- cloudinit:一个多分发包,用于处理云实例的早期初始化。
- pyinfra:一个通用的cli工具包和python库,用于自动化的基础设施。
- honcho:Foreman的Python克隆版,用于管理基于Procfile的应用。
- BorgBackup:具有压缩和加密功能的重复数据删除存档器。
- docker-compose:使用Docker的快速独立的开发环境.
任务调度
任务调度库.
- APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数。
- django-schedule:一个django排程应用.
- doit:一个任务执行和构建工具。
- gunnery:分布式系统使用的多用途任务执行工具,具有Web交互界面。
- Joblib:一组为Python提供轻量级作业流水线的工具.
- Plan:如有神助地编写crontab文件。
- schedule:人性化的Python任务调度库.
- Spiff:使用纯Python实现的强大的工作流引擎.
- TaskFlow:一个可以让你方便执行任务的Python库,一致并且可靠.
- Airflow:是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。
- Prefect:一个现代的工作流程编排框架,使构建、计划和监视健壮的数据管道变得容易。
外来函数接口
使用外来函数接口的库.
重构
巨蟒重构相关库和工具。
- Bicycle Repair Man:Python的重构工具。
- Bowler:适用于现代Python的安全代码重构.
- Rope:一个Python的重构库.
高性能
让Python更快的库.
- Cython:优化的Python静态编译器.使用类型混合使Python编译成C或C++模块来获得性能的极大提升。
- CLPython:用Common Lisp编写的Python编程语言的实现。
- Grumpy:编译器比解释器更强大的cpython2.7替代品(阿尔法)。
- IronPython:用C#编写的Python编程语言的实现.
- Jython:为jvm用java编写的python编程语言的实现。
- MicroPython:精简高效的Python编程语言实现.
- Pyjion:基于内核CLR的Python JIT。
- Numba:Python JIT(Just In Time)编译器,针对科学用的Python,由Cython和NumPy的开发者开发。
- PeachPy:嵌入python的x86-64汇编器。可以被用作Python内联的汇编器或者是独立的汇编器,用于windows、linux、OS X、Native Client或者Go。
- PyPy:使用python实现的python.解释器使用黑魔法加快Python运行速度且不需要加入额外的类型信息.
- Pyston:使用llvm和现代jit技术构建的python实现,目标是为了获得很好的性能.
- Stackless Python:一个强化版的python。
微软的Windows平台
在Windows平台上进行Python编程。
- Python(x,y):面向科学应用的Python发行版,基于Qt和Spyder.
- pythonlibs:非官方的视窗平台Python扩展二进制包.
- PythonNet:Python与.NET公共语言运行库(Clr)的集成。
- PyWin32:针对视窗的Python扩展.
- WinPython:Windows 7/8系统下便携式开发环境。
网络可视化和SDN
用来进行网络可视化和SDN(软件定义网络)的工具和库.
- Mininet:一款流行的网络模拟器以及用Python编写的接口。
- POX:一个针对基于Python的软件定义网络应用(例如OpenFlow SDN控制器)的开源开发平台.
- Pyretic:火热的sdn编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力.
- SDX Platform:基于sdn的ixp实现,影响了Mininet,POX和高热。
- NRU:一个基于组件的软件定义网络框架。
- napalm:可跨供应商接口来操纵网络设备。
硬件
用来对硬件进行编程的库.
- ino:操作Arduino的命令行工具.
- Pyro:Python机器人编程库。
- PyUserInput:跨平台的,控制鼠标和键盘的模块。
- scapy:一个非常棒的操作数据包的库。
- wifi:一个python库和命令行工具用来在linux平台上操作WIFI。
- Pingo:Pingo为类似Raspberry PI,pcDuino,英特尔伽利略等设备提供统一的应用编程接口用以编程。
- keyboard:在Windows和LINUX上挂钩并模拟全局键盘事件.
- mouse:在Windows和LINUX上挂钩并模拟全局鼠标事件.
兼容性
帮助从Python 2向Python 3迁移的库。
- Python-Future:这就是python2和python3之间丢失的那个兼容性层。
- Six:Python 2和3的兼容性工具。
- modernize:使Python代码更加现代化以便最终迁移到Python3.
算法和设计模式
数据结构、算法和设计模式的Python实现.也可以参考awesome-algorithms那就是。
- 算法
- algorithms:数据结构和算法的简单示例。
- python-ds:用于面试的数据结构和算法的集合。
- sortedcontainers:排序集合的快速的纯Python实现.
- TheAlgorithms:所有算法的Python实现.
- 设计模式
- PyPattyrn:一个简单而有效的库,用于实现常见的设计模式。
- python-patterns:一个Python设计模式集合.
- transitions:轻量级的,面向对象的有限状态机实现。
内置类的增强版实现
一些Python内置类的增强版实现库.
- attrs:一个在类定义时可替换
__init__
,__eq__
,__repr__
等方法的样板. - bidict:高效的Pythonic的双向映射数据结构和相关功能.
- Box:具有高级点符号访问权限的Python字典.
- dataclasses:(Python标准库)数据类.
- DottedDict:提供一种使用点路径符号访问列表和字典的方法的库。
机器人
机器人相关库.
- PythonRobotics:各种具有可视化效果的机器人算法的汇总。
- rospy:ROS(机器人操作系统)库。
聊天工具
聊天机器人开发相关的库.
- errbot:实现ChatOps的最简单最受欢迎的聊天机器人。
编辑器插件和集成开发环境
- Emacs
- elpy:Emacs Python开发环境。
- 崇高的文本
- anaconda巨蟒可将功能齐全的Python开发集成开发环境转换为崇高文本3。
- SublimeJEDI:一个很棒的自动补全库Jedi的Sublime Text插件.
- VIM
- jedi-vim:用于Python的Jedi自动补全库的Vim绑定.
- python-mode:一个将Vim转换为Python IDE的多合一插件.
- YouCompleteMe:包含Jedi补全的Python引擎.
- Visual Studio
- PTVS:visual Studio Python工具。
- Visual Studio代码
- Python:对Python有丰富支持的官方VScode扩展。
- IDE
企业级应用集成
企业级环境中用于集成的平台与工具.
- Zato:esb,soa,睡觉,API以及云的python整合。
图形QL
GraphQL相关库。
- graphene:Python GraphQL框架。
- tartiflette-aiohttp:tartiflette的基于aiohttp的装饰器,用于通过http公开GraphQL API。
- tartiflette-asgi:Tartiflette GraphQL引擎的ASGI支持.
- tartiflette:支持Python3.6+和Asyncio的SDL优先的GraphQL引擎实现.
杂项
不属于上面任何一个类别,但是非常有用的库.
- blinker:快速的Python运行时信号/事件分配系统.
- boltons:一组纯Python实用工具.
- itsdangerous:将受信任的数据传递到不受信任的环境的帮助工具。
- magenta:使用人工智能生成音乐与艺术的工具。
- pluginbase:一个简单但灵活的Python插件系统.
- tryton:一个通用业务框架。