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 本身。
配置
用来保存和解析配置的库。
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:提供用户友好的函数来帮助用户进行