个人常用的第三方库

以下列出我曾经/常用的第三方库,希望可以给读者的开发提供一些思路

第三方库名称 简评
argostranslate/argostranslategui 一个文本翻译的项目(后者是一个GUI模块),借助项目预训练的模型提供多国语言的翻译,个人感觉效果还行,主要胜在速度快
autopep8 一般是配合VScode插件使用,以实现对代码进行格式化,不过近期使用black会比较多
beautifulsoup4 借助css等特性解析html的库,如果做网页抓取等爬虫项目会用到
black 可以对代码进行格式化,可配置的选项不多,适合不太喜欢折腾的人,配合IDE使用比较方便
cchardet 检测文本编码格式的库,准确度较高,但仅支持到python3.9,python 3.10需要借助VS编译源码
chardet 检测准确率一般,近期使用cchardet
cryptography 密码学库,如果对加密方面有要求,可以去研究学习
cx_Freeze 打包python代码的库,用的很少,尽在个别情况下无法通过pyinstaller/nuitka无法编译的情况才会考虑它
Cython 既是一个类编程语言(python语法的超集),也是一种编译工具,将python代码编译成pyd文件,在某些计算密集型场景下会用到,由于本人不怎么遇到这种情况,所以用的很少
darkdetect 检测当前系统的主题状态,主要用于多主题色GUI软件上
django 一个用于网站开发的库
everytools 将everything的sdk做封装的python库,但使用前需要提前运行everything
faker 生成随机信息的python库,个人使用的很少
Flask 和django类似,但相对轻量化,如果需要开箱即用的功能,可以考虑django,但如果追求轻量化,可以考虑flask或fastapi
flet 跨平台的GUI框架,类似于tkinter、PyQt/PySide,本质是对flutter的封装,但是打包体积有些大
gdown 用于解析GoogleDrive的库,但由于这个库封装的太厉害,如果要集成到自己的项目中,建议深度修改源码
isort 可以排序代码引用的库,不过由于平时都是使用IDE,内置了相关功能,所以用的不多
jupyter 适合python代码和markdown混排的库,一般用于做代码笔记或代码演示
kivy/kivymd 跨平台GUI库,但是对中文优化不太好,感觉还不是太成熟(后者提供了MaterialDesign风格的kivy控件)
loguru 简易但功能比较强大的日志库,感觉是logging和cgitb的结合,但比logging更简单,比cgitb更具备可调性,值得一试
mkdocs/mkdocs-material 静态文档的库,本博客就是基于mkdocs编写的(后者是mkdocs的主题皮肤)
mypy 静态分析的python库,个人使用不多,一般依赖IDE做静态分析
nuitka 打包python代码的库,需要依赖C/C++环境,且对PyQt5/PySide2/PyQt6兼容性不是太好(本博客有对这个模块做具体说明)
opencc 用于处理繁体中文/简体中文的库,在某些情况下会用到
opencv-python 做计算机视觉需要用到的库,不过目前偶尔在处理视频的时候会用到
openpyxl 解析处理xlsx的python库,但不能处理xls表格(需要依赖pywin32+office)
paramiko 对SSH协议做封装的库,用于做远程服务器连接使用
pefile 用于解析可执行文件的属性,个人目前用在解析可执行程序的版本类型
Pillow 用于处理图像的python库,目前主要用在绘制验证码、图标等场景
pinyin 将汉字转换成拼音的库,个别场景下会用到
poetry 管理python虚拟环境的库,个人使用的不多,目前以python自带的创建虚拟环境的库和uv为主
psutil 用于与部分硬件做交互的库,比如获取CPU/内存/硬盘/网卡等信息
py7zr 用python实现7z压缩协议的库,7-zip大部分常用的功能py7zr都有,但是由于是python实现的,性能比7-zip差
pycryptodome python的加密库,做加密和数据安全会用到
pydantic 数据校验库,用于解析处理外部的数据,个人常用在解析程序的配置文件并做校验,值得一试
pyinstaller python打包的库,兼容性比较好,也比较通用,本博客也有对这个模块做一些介绍
PyNaCl 实现Nacl算法的python库,在某些场景下会用到
PyQt5 对Qt的GUI做封装的python库,本人常用,但由于是GPL协议,要注意版权问题
PyQt5-Frameless-Window/PyQt6-Frameless-Window/PySide2-Frameless-Window/PySide6-Frameless-Window 无边框窗口的UI库,一般会配合PyQt-Fluent-Widgets使用
PyQt-Fluent-Widgets/PyQt6-Fluent-Widgets/PySide2-Fluent-Widgets/PySide6-Fluent-Widgets 实现了Fluent设计的UI库,本博客也对该模块做了简要介绍
pyqtdarktheme 支持深浅主题色的UI库,本质上是利用python+qss自定义控件的主题风格
PySide2 同上,但采用LGPL协议,可以闭源使用,但只能兼容到python 3.10
PyQt6 同上,也是GPL协议,本人使用的不多
PySide6 同上,开源协议是LGPL协议,某些场景下会用到,但需要注意这些问题(包括但不限于不支持Windows 7、不支持32位系统,低版本的python不支持)
PySide6-FluentUI-QML 采用Fluent设计的UI库,和PyQt-Fluent-Widget相比,前者是基于QML,后者是基于QtWidgets
pytest 做测试用的库,比unitest功能更多,目前还没有开始投入到项目使用
python-docx 解析处理docx文档的库,但不支持doc文档
python-magic 可以获取文件类型的库,但测试发现有很多bug
pywin32 将Windows api接口做了封装的库,如果要与Windows api/com接口打交道,值得一试,本博客也有对该模块做了一些介绍
requests 用于处理http请求的库,做web开发/爬虫等会用到
Ruff 用于静态分析、代码格式化的库,本人使用的不多,一般以IDE自带的静态分析、代码格式化为主
seedir 实现类似tree命令的库,但可以调整的地方更多
Send2Trash 可以将文件移动到回收站而不是直接删除的库
Sphinx 与mkdocs类似,但由于采用rst格式标准,比如markdown好用
tqdm 用于显示终端进度条的库,效果还行
uv 用于取代pip的库,处理速度很快,但还处在早期阶段,还不太稳定
win10toast/win11toast 用于显示Windows的消息提示的库,前者测试发现有bug,但无人解决
win32mica 一般配合GUI程序使用,可以将原生窗口标题栏跟随系统主题色变化,但只能在部分版本的Windows系统中才生效