首页 存档 技术 查看内容

那些让人惊艳的Python库

2018-3-30 13:00 |来自: 互联网 485 0

摘要: 每一门技艺都是入门容易熟悉难,越是了解,越是感觉到自己的欠缺,在python博大精深的世界里,这些蔚为壮观的python库,也只能算是沧海一粟。 图片由青年艺术家王冲提供 环境管理 管理Python版本和环境的工具。 ...


每一门技艺都是入门容易熟悉难,越是了解,越是感觉到自己的欠缺,在python博大精深的世界里,这些蔚为壮观的python库,也只能算是沧海一粟。


图片由青年艺术家王冲提供

环境管理


管理Python版本和环境的工具。

  • p非常简单的交互式python版本管理工具。

  • pyenv简单的Python版本管理工具。

  • Vex可以在虚拟环境中执行命令。

  • virtualenv创建独立Python环境的工具。

  • virtualenvwrapper-virtualenv的一组扩展。


包管理


管理包和依赖的工具。

  • pipPython包和依赖关系管理工具。

  • pip-tools保证Python包依赖关系更新的一组工具。

  • conda跨平台,Python二进制包管理工具。

  • Curdling管理Python包的命令行工具。

  • wheelPython分发的新标准,意在取代eggs。

包仓库


本地PyPI仓库服务和代理。

  • warehouse下一代PyPI。

    WarehousebandersnatchPyPA提供的PyPI镜像工具。

  • devpiPyPI服务和打包/测试/分发工具。

  • localshop本地PyPI服务(自定义包并且自动对PyPI镜像)。


分发


打包为可执行文件以便分发。

  • PyInstaller将Python程序转换成独立的执行文件(跨平台)。

  • dh-virtualenv构建并将virtualenv虚拟环境作为一个Debian包来发布。

  • Nuitka将脚本、模块、包编译成可执行文件或扩展模块。

  • py2app将Python脚本变为独立软件包(Mac OS X)。

  • py2exe将Python脚本变为独立软件包(Windows)。

  • pynsist一个用来创建Windows安装程序的工具,可以在安装程序中打包Python本身。


构建工具


将源码编译成软件。

  • buildout一个构建系统,从多个组件来创建,组装和部署应用。

  • BitBake针对嵌入式Linux的类似make的构建工具。

  • fabricate对任何语言自动找到依赖关系的构建工具。

  • PlatformIO多平台命令行构建工具。

  • PyBuilder纯 Python 实现的持续化构建工具。

  • SCons软件构建工具。


交互式解析器


交互式Python解析器。

  • IPython功能丰富的工具,非常有效的使用交互式Python。

  • bpython-界面丰富的Python解析器。

  • ptpython高级交互式Python解析器,构建于python-prompt-toolkit 之上。


文件


文件管理和MIME(多用途的网际邮件扩充协议)类型检测。

  • imghdr(Python标准库)检测图片类型。

  • mimetypes(Python标准库)将文件名映射为MIME类型。

  • path.py对os.path进行封装的模块。

  • pathlib(Python3.4 标准库)跨平台的、面向对象的路径操作库。

  • python-magic- 文件类型检测的第三方库libmagic的Python接口。

  • Unipath-用面向对象的方式操作文件和目录。

  • watchdog管理文件系统事件的API和shell工具。


日期和时间


操作日期和时间的类库。

  • arrow-更好的Python日期时间操作类库。

  • ChronykPython3的类库,用于解析手写格式的时间和日期。

  • dateutilPython datetime模块的扩展。

  • delorean-解决Python中有关日期处理的棘手问题的库。

  • moment一个用来处理时间和日期的Python库。灵感来自于Moment.js。

  • PyTime一个简单易用的Python模块,用于通过字符串来操作日期/时间。

  • pytz现代以及历史版本的世界时区定义。将时区数据库引入Python。

  • when.py提供用户友好的函数来帮助用户进行常用的日期和时间操作。


文本处理


用于解析和操作文本的库。

  • 通用

  • chardet字符编码检测器,兼容Python2和Python3。

  • difflib(Python标准库)帮助我们进行差异化比较。

  • ftfy让Unicode文本更完整更连贯。

  • fuzzywuzzy模糊字符串匹配。

  • Levenshtein快速计算编辑距离以及字符串的相似度。

  • pangu.py在中日韩语字符和数字字母之间添加空格。

  • pyfiglet-figlet的Python实现。

  • shortuuid一个生成器库,用以生成简洁的,明白的,URL安全的UUID。

  • unidecodeUnicode文本的ASCII转换形式。

  • uniout打印可读的字符,而不是转义的字符串。

  • xpinyin一个用于把汉字转换为拼音的库。

  • Slug化

  • awesome-slugify一个Python slug化库,可以保持 Unicode。

  • python-slugifyPython slug化库,可以把unicode转化为ASCII。

  • unicode-slugify一个slug工具,可以生成unicode slugs,需要依赖Django。

  • 解析器

  • phonenumbers解析,格式化,储存,验证电话号码。

  • PLYlex和yacc解析工具的Python实现。

  • Pygments通用语法高亮工具。

  • pyparsing生成通用解析器的框架。

  • python-nameparser把一个人名分解为几个独立的部分。

  • python-user-agents浏览器user agent解析器。

  • sqlparse一个无验证的SQL解析器。


特殊文本格式处理


一些用来解析和操作特殊文本格式的库。

  • 通用

  • tablib一个用来处理中表格数据的模块。

  • Office

  • Marmir把输入的Python数据结构转换为电子表单。

  • openpyxl一个用来读写Excel2010xlsx/xlsm/xltx/xltm文件的库。

  • python-docx读取,查询以及修改Microsoft Word2007/2008docx文件。

  • unoconv在LibreOffice/OpenOffice支持的任意文件格式之间进行转换。

  • XlsxWriter一个用于创建Excel.xlsx文件的Python模块。

  • xlwings一个使得在Excel中方便调用Python的库(反之亦然),基于BSD协议。

  • xlwt/xlrd读写Excel文件的数据和格式信息。

  • relatorio模板化OpenDocument文件。

  • PDF

  • PDFMiner一个用于从PDF文档中抽取信息的工具。

  • PyPDF2一个可以分割,合并和转换PDF页面的库。

  • ReportLab快速创建富文本PDF文档。

  • Markdown

  • Mistune快速并且功能齐全的纯Python实现的Markdown解析器。

  • Python-MarkdownJohn Gruber’s Markdown的Python版实现。

  • YAML

  • PyYAMLPython版本的YAML解析器。

  • CSV

  • csvkit用于转换和操作CSV的工具。

  • Archive

  • unp一个用来方便解包归档文件的命令行工具。


自然语言处理


用来处理人类语言的库。

  • NLTK一个先进的平台,用以构建处理人类语言数据的Python程序。

  • jieba中文分词工具。

  • langid.py独立的语言识别系统。

  • PatternPython 网络信息挖掘模块。

  • SnowNLP一个用来处理中文文本的库。

  • TextBlob为进行普通自然语言处理任务提供一致的 API。

  • TextGrocery一简单高效的短文本分类工具,基于LibLinear和Jieba。


文档


用以生成项目文档的库。

  • SphinxPython文档生成器。

  • awesome-sphinxdoc

  • MkDocs对Markdown友好的文档生成器。

  • pdoc一个可以替换Epydoc的库,可以自动生成Python库的API文档。

  • Pycco文学编程(literate-programming)风格的文档生成器。


配置


用来保存和解析配置的库。

  • configlogging模块作者写的分级配置模块。

  • ConfigObjINI文件解析器,带验证功能。

  • ConfigParser(Python标准库)INI文件解析器。

  • profig通过多种格式进行配置,具有数值转换功能。

  • python-decouple将设置和代码完全隔离。


命令行工具


用于创建命令行程序的库。

  • 命令行程序开发

  • cementPython的命令行程序框架。

  • click一个通过组合的方式来创建精美命令行界面的包。

  • cliff一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。

  • clintPython命令行程序工具。

  • colorama跨平台彩色终端文本。

  • docoptPython风格的命令行参数解析器。

  • Gooey一条命令,将命令行程序变成一个GUI程序。

  • python-prompt-toolkit一个用于构建强大的交互式命令行程序的库。

  • 生产力工具

  • aws-cliAmazon Web Services的通用命令行界面。

  • bashplotlib在终端中进行基本绘图。

  • caniusepython3判断是哪个项目妨碍你你移植到Python3。

  • cookiecutter从cookiecutters(项目模板)创建项目的一个命令行工具。

  • doitlive一个用来在终端中进行现场演示的工具。

  • howdoi通过命令行获取即时的编程问题解答。

  • httpie一个命令行HTTP客户端,cURL的替代品,易用性更好。

  • PathPicker从bash输出中选出文件。

  • percol向UNIX shell传统管道概念中加入交互式选择功能。

  • SAWS一个加强版的AWS命令行。

  • thefuck修正你之前的命令行指令。

  • mycli一个MySQL命令行客户端,具有自动补全和语法高亮功能。

  • pgcliPostgres命令行工具,具有自动补全和语法高亮功能。


下载器


用来进行下载的库。

  • s3cmd一个用来管理AmazonS3和CloudFront的命令行工具。

  • s4cmd超级S3命令行工具,性能更加强劲。

  • you-get一个YouTube/Youku/Niconico视频下载器,使用Python3编写。

  • youtube-dl一个小巧的命令行程序,用来下载YouTube视频。


图像处理


用来操作图像的库。

  • pillowPillow是一个更加易用版的PIL。

  • hmap图像直方图映射。

  • imgSeek一个使用视觉相似性搜索一组图片集合的项目。

  • nude.py裸体检测。

  • pyBarcode不借助PIL库在Python程序中生成条形码。

  • pygram类似Instagram的图像滤镜。

  • python-qrcode一个纯Python实现的二维码生成器。

  • Quads基于四叉树的计算机艺术。

  • scikit-image一个用于(科学)图像处理的Python库。

  • thumbor一个小型图像服务,具有剪裁,尺寸重设和翻转功能。

  • wandMagickWand的Python绑定。MagickWand是ImageMagick的C API。


OCR


光学字符识别库。

  • pyocrTesseract和Cuneiform的一个封装(wrapper)。

  • pytesseractGoogle Tesseract OCR的另一个封装(wrapper)。

  • python-tesseractGoogle Tesseract OCR的一个包装类。


音频


用来操作音频的库。

  • audiolazy-Python的数字信号处理包。

  • audioread交叉库(GStreamer Core Audio MAD FFmpeg)音频解码。

  • beets一个音乐库管理工具及MusicBrainz标签添加工具。

  • dejavu音频指纹提取和识别。

  • django-elastic-transcoderDjango Amazon Elastic Transcoder。

  • eyeD3一个用来操作音频文件的工具,具体来讲就是包含ID3元信息的MP3文件。

  • id3reader一个用来读取MP3元数据的Python模块。

  • m3u8一个用来解析m3u8文件的模块。

  • mutagen一个用来处理音频元数据的Python模块。

  • pydub通过简单、简洁的高层接口来操作音频文件。

  • pyechonestEcho Nest API的Python客户端。

  • talkbox一个用来处理演讲/信号的Python库。

  • TimeSide开源web音频处理框架。

  • tinytag一个用来读取MP3, OGG, FLAC以及Wave文件音乐元数据的库。

  • mingus一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。


视频


用来操作视频和GIF的库。

  • moviepy一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图GIFs。

  • scikit-videoSciPy视频处理常用程序。


地理位置


地理编码地址以及用来处理经纬度的库。

  • GeoDjango世界级地理图形web框架。

  • GeoIPMaxMind GeoIP Legacy数据库的Python API。

  • geojsonGeoJSON的Python绑定及工具。

  • geopyPython地址编码工具箱。

  • pygeoip纯Python GeoIP API。

  • django-countries一个Django应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。


HTTP


使用HTTP的库。

  • requests人性化的HTTP请求库。

  • grequestsrequests库 gevent,用于异步HTTP请求。

  • httplib2全面的HTTP客户端库。

  • treq类似requests的Python API构建于Twisted HTTP客户端之上。

  • urllib3一个具有线程安全连接池,支持文件post,清晰友好的HTTP库。


数据库


Python实现的数据库。

  • pickleDB一个简单,轻量级键值储存数据库。

  • PipelineDB流式SQL数据库。

  • TinyDB一个微型的,面向文档型数据库。

  • ZODB一个Python原生对象数据库。一个键值和对象图数据库。


数据库驱动


用来连接和操作数据库的库。

  • MySQL awesome-mysql系列

  • mysql-pythonPython的MySQL数据库连接器。

  • mysqlclientmysql-python分支,支持Python3。

  • oursql一个更好的MySQL连接器,支持原生预编译指令和BLOBs。

  • PyMySQL纯Python MySQL驱动,兼容mysql-python。

  • PostgreSQL

  • psycopg2Python中最流行的PostgreSQL适配器。

  • queriespsycopg2库的封装,用来和PostgreSQL进行交互。

  • txpostgres基于Twisted的异步PostgreSQL驱动。

  • 其他关系型数据库

  • apsw另一个Python SQLite封装。

  • dataset在数据库中存储Python字典可以协同SQLite,MySQL,和PostgreSQL工作。

  • pymssql-一个简单的Microsoft SQL Server数据库接口。

  • NoSQL 数据库

  • cassandra-python-driverCassandra的Python驱动。

  • HappyBase一个为Apache HBase设计的,对开发者友好的库。

  • Plyvel一个快速且功能丰富的LevelDB的Python接口。

  • py2neoNeo4j restful接口的Python封装客户端。

  • pycassaCassandra的Python Thrift驱动。

  • PyMongoMongoDB的官方Python客户端。

  • redis-pyRedis的Python客户端。

  • telephus基于Twisted的Cassandra客户端。

  • txRedis基于Twisted的Redis客户端。


ORM


实现对象关系映射或数据映射技术的库。

  • 关系型数据库

  • awesome-sqlalchemy系列

  • Django ModelsDjango的一部分。

  • SQLAlchemyPython SQL工具以及对象关系映射工具。

  • Peewee一个小巧,富有表达力的ORM。

  • PonyORM提供面向生成器的SQL接口的ORM。

  • python-sql编写Python风格的SQL查询。

  • NoSQL 数据库

  • django-mongodb-engineDjango MongoDB后端。

  • PynamoDBAmazon DynamoDB的一个Python风格接口。

  • flywheelAmazon DynamoDB的对象映射工具。

  • 声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部