大道之行,天下为公。这篇文章主要讲述108个Python精选库,建议收藏留用!相关的知识,希望能为你提供帮助。
大家好,我是python程序员 晚枫。
Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多。而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及。万丈高楼平地起,Python这座大厦能够如此强大,就是拥有强大的成千上万的库的支持,无数牛x的轮子在支持这座大厦,今天我们来一起梳理一下,俯瞰整个Python宝库。
文章图片
我大概列了一下整个Python库的应用的方法面面,粗略算算就有20几个方向。左右两边分两个方向,左边负责进攻(主外),每一项单独拉出来都是精品,都是Python应用里面拳头产品;右边负责守(主内),都是涉及底层的配置,算是整个大厦的地基。下面我们挑选每个领域的的精品库,展现给大家,看完之后,你一定会大叫,WC,这么多库我都没有见过~~
1、Python大厦的底层基建环境管理
管理 Python 版本和环境的工具p:非常简单的交互式 python 版本管理工具。pyenv:简单的 Python 版本管理工具。Vex:可以在虚拟环境中执行命令。virtualenv:创建独立 Python 环境的工具。buildout:在隔离环境初始化后使用声明性配置管理。
包管理
管理包和依赖的工具。pip:Python 包和依赖关系管理工具。pip-tools:保证 Python 包依赖关系更新的一组工具。pipenv:Python 官方推荐的新一代包管理工具。poetry: 可完全取代 setup.py 的包管理工具。conda:跨平台,Python 二进制包管理工具。Curdling:管理 Python 包的命令行工具。wheel:Python 分发的新标准,意在取代 eggs。
分发
打包为可执行文件以便分发。PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。cx_Freeze:将python程序转换为带有一个动态链接库的可执行文件。dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。py2app:将 Python 脚本变为独立软件包(Mac OS X)。py2exe:将 Python 脚本变为独立软件包(Windows)。pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身。
配置
用来保存和解析配置的库。【108个Python精选库,建议收藏留用!】config:logging 模块作者写的分级配置模块。ConfigObj:INI 文件解析器,带验证功能。ConfigParser:(Python 标准库) INI 文件解析器。profig:通过多种格式进行配置,具有数值转换功能。python-decouple:将设置和代码完全隔离。
文章图片
2、Python大厦的管理配置文件
aiofiles:基于 asyncio,提供文件异步操作imghdr:(Python 标准库)检测图片类型mimetypes:(Python 标准库)将文件名映射为 MIME 类型path.py:对 os.path 进行封装的模块pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库python-magic:文件类型检测的第三方库 libmagic 的 Python 接口Unipath:用面向对象的方式操作文件和目录watchdog:管理文件系统事件的 API 和 shell 工具
日期和时间
操作日期和时间的类库。arrow:更好的 Python 日期时间操作类库。Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。dateutil:Python datetime 模块的扩展。delorean:解决 Python 中有关日期处理的棘手问题的库。maya:人性化的时间处理库。moment:一个用来处理时间和日期的 Python 库。灵感来自于 Moment.js。pendulum:一个比 arrow 更具有明确的,可预测的行为的时间操作库。PyTime:一个简单易用的 Python 模块,用于通过字符串来操作日期/时间。pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。
文本处理
用于解析和操作文本的库。
- 通用
- Slug 化
- 解析器
办公文本格式处理
- 通用
- Office
- Markdown
- YAML
- CSV
配置
用来保存和解析配置的库。config:logging 模块作者写的分级配置模块。ConfigObj:INI 文件解析器,带验证功能。ConfigParser:(Python 标准库) INI 文件解析器。profig:通过多种格式进行配置,具有数值转换功能。python-decouple:将设置和代码完全隔离。
命令行工具
用于创建命令行程序的库。
- 命令行程序开发
- 生产力工具
3、Python大厦的仓库数据库
Python 实现的数据库。pickleDB:一个简单,轻量级键值储存数据库。PipelineDB:流式 SQL 数据库。TinyDB:一个微型的,面向文档型数据库。ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。
数据库驱动
用来连接和操作数据库的库。
- MySQL:awesome-mysql 系列
- PostgreSQL
- 其他关系型数据库
- NoSQL 数据库
文章图片
4、Python大厦的网络通讯网络
用于网络编程的库。asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。Twisted:一个事件驱动的网络引擎。pulsar:事件驱动的并发框架。diesel:基于 Greenlet 的事件 I/O 框架。pyzmq:一个 ZeroMQ 消息库的 Python 封装。Toapi:一个轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。
HTTP
使用 HTTP 的库。aiohttp:基于 asyncio 的异步 HTTP 网络库。requests:人性化的 HTTP 请求库。grequests:requests 库 + gevent ,用于异步 HTTP 请求.httplib2:全面的 HTTP 客户端库。treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。WebSocket 帮助使用 WebSocket 的库。AutobahnPython:给 Python 、使用的 WebSocket & WAMP 基于 Twisted 和 asyncio。Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn)。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:多线程, 是它驱动着 Pyramid 框架。Werkzeug:一个 WSGI 工具库,驱动着 Flask ,而且可以很方便大嵌入到你的项目中去。
Web 框架
全栈 Web 框架。Django:Python 界最流行的 web 框架。Flask:一个 Python 微型框架。pyramid:一个小巧,快速,接地气的开源 Python web 框架。Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有 WSGI 线程池。TurboGears:一个可以扩展为全栈解决方案的微型框架。Tornado:一个 web 框架和异步网络库。sanic:基于 Python3.5+ 的异步网络框架。starlette: 一款轻量级,高性能的 ASGI 框架
电子商务
用于电子商务以及支付的框架和库。django-oscar:一个用于 Django 的开源的电子商务框架。django-shop:一个基于 Django 的店铺系统。Cartridge:一个基于 Mezzanine 构建的购物车应用。shoop:一个基于 Django 的开源电子商务平台。alipay:非官方的 Python 支付宝 API。merchant:一个可以接收来自多种支付平台支付的 Django 应用。money:一个货币类库。带有可选的 CLDR 后端本地化格式,提供可扩展的货币兑换解决方案。python-currencies:显示货币格式以及它的数值。
RESTful API
用来开发 RESTful APIs 的库
- Django
- Flask
- Pyramid
- 与框架无关的
模板引擎
模板生成和词法解析的库和工具。Jinja2:一个现代的,对设计师友好的模板引擎。Chameleon:一个 html/XML 模板引擎。模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。Genshi:Python 模板工具,用以生成 web 感知的结果。Mako:Python 平台的超高速轻量级模板。
队列
处理事件以及任务队列的库。celery:一个异步任务队列/作业队列,基于分布式消息传递。huey:小型多线程任务队列。mrq:Mr. Queue -一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。rq:简单的 Python 作业队列。simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。
搜索
对数据进行索引和执行搜索查询的库和软件。django-haystack:Django 模块化搜索。elasticsearch-py:Elasticsearch 的官方底层 Python 客户端。elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端。solrpy:solr 的 Python 客户端。Whoosh:一个快速的纯 Python 搜索引擎库。
电子邮件
用来发送和解析电子邮件的库。django-celery-ses:带有 AWS SES 和 Celery 的 Django email 后端。envelopes:供人类使用的电子邮件库。flanker:一个 email 地址和 Mime 解析库。imbox:Python IMAP 库。inbox.py:Python SMTP 服务器。inbox:一个开源电子邮件工具箱。lamson:Python 风格的 SMTP 应用服务器。mailjet:Mailjet API 实现,用来提供批量发送邮件,统计等功能。marrow.mailer:高性能可扩展邮件分发框架。modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。pyzmail:创建,发送和解析电子邮件。Talon:Mailgun 库,用来抽取信息和签名。yagmail:yagmail是一个GMAIL / SMTP客户端,旨在使其尽可能简单地发送电子邮件。
URL 处理
解析 URLs 的库furl:一个让处理 URL 更简单小型 Python 库。purl:一个简单的,不可变的 URL 类,具有简洁的 API 来进行询问和处理。pyshorteners:一个纯 Python URL 缩短库。shorturl:生成短小 URL 和类似 bit.ly 短链的 Python 实现。webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。
5、Python大厦的动力系统进程
操作系统进程启动及通信库。envoy:比 Python subprocess 模块更人性化。sarge:另一 种 subprocess 模块的封装。sh:一个完备的 subprocess 替代库。
并发和并行
用以进行并发和并行操作的库。multiprocessing:(Python 标准库) 基于进程的“线程”接口。threading:(Python 标准库)更高层的线程接口。eventlet:支持 WSGI 的异步框架。gevent:一个基于协程的 Python 网络库,使用 greenlet。Tomorrow:用于产生异步代码的神奇的装饰器语法实现。uvloop:在 libuv 之上超快速实现 asyncio 事件循环。
文章图片
不看不知道,一看真的是大吃一惊,Python的库真的太多太多了。
以上100多库只是Python帝国大厦的一部分,负责构建大厦的内部基石。后面小编会继续介绍Python应用的库大全,敬请期待。
悄悄的说一下,我常用的只有20个不到,你用了几个?欢迎评论区吱一声。
推荐阅读
- #yyds干货盘点# 解决剑指offer(跳台阶)
- AIoT时代,如何颠覆传统AI硬件产研模式
- 数据库数据恢复存储损坏导致SQL Server数据库崩溃的数据恢复案例
- BI 如何让SaaS产品具有 “安全感”和“敏锐感”(上)
- it|docker和docker compose安装使用、入门进阶案例
- Nacos Config 动态刷新源码剖析
- HarmonyOS 使用FA调PA能力实现JS消息订阅功能
- electron学习笔记electron之打包程序file路径的刷新页面处理
- Java 更新和删除PDF中的超链接