Python 工程实践
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/python-best-practices。
技能介绍
告别「脚本玩具」:现代 Python 工程的痛点与破局
在 Python 开发中,我们常面临一个尴尬的现实:项目初期为了追求速度,代码往往像一次性脚本一样脆弱。随着业务膨胀,缺乏类型约束导致重构如履薄冰;同步 I/O 阻塞让性能遇到瓶颈;混乱的依赖管理使得环境部署变成玄学。这个技能致力于帮助开发者打破「能跑就行」的思维惯性,将 Python 项目提升到具备静态语言级别的生产质量,真正实现从脚本到工程的跨越。
核心工作流与工程实践
该技能围绕现代 Python 工程的五个核心维度提供系统化的指导:
- 项目初始化与结构:推荐使用
uv或poetry等现代包管理器,并在pyproject.toml中严格声明requires-python,奠定规范化的项目基座。 - 渐进式类型系统:不仅覆盖基础注解,更深入
TypeVar、Protocol、TypedDict和Literal等高级类型。通过TypeGuard进行类型收窄,逐步消除# type: ignore。 - asyncio 异步重构:针对 I/O 密集型场景,提供
asyncio.gather()、Semaphore及TaskGroup等关键模式,并指导如何安全地在同步与异步代码间进行桥接。 - 质量护栏与 CI:整合
ruff、mypy和pytest,在 CI/CD 流水线中构建「检查-测试-构建」的闭环。 - 依赖锁定与更新:通过提交 lock 文件和自动化工具管理依赖,区分运行时与开发时依赖。
适用边界与避坑指南
需要注意的是,本技能聚焦于通用 Python 应用与库的开发。它不适用于数据科学/机器学习管线的专项优化(如 pandas/numpy 调优),也不涵盖 Django/Flask 等特定框架的内部机制与业务细节。此外,在处理 CPU 密集型任务时,应明确避开 asyncio,转而使用 multiprocessing 以获得真正的性能提升。
使用场景
- 团队要启动一个新的 Python 服务项目,需要在 uv、poetry、pip 之间选型,并搭好含 pyproject.toml 的项目骨架
- 手上有一个跑了很久但没类型注解的存量代码库,想用 pyright 或 mypy 渐进式补类型并逐步打开严格模式
- FastAPI 项目每次请求串行调用多个外部 API 很慢,需要改用 asyncio.gather 并发并加 Semaphore 限流
- 正在开发一个要发布到 PyPI 的 Python 包,需要配置 ruff、mypy、pytest 的 CI 检查并区分运行时与开发依赖
适合人员
- 后端工程师,手里有一个能跑但结构混乱的 Python 脚本项目,希望重构为类型安全、有测试、可上线的服务
- Python 库或开源项目作者,准备把工具包发布到 PyPI,需要正确的打包配置和 CI 质量门禁
- 团队技术负责人,想给遗留代码库引入渐进式类型检查和统一的代码风格规范
- 异步服务开发者,正在处理 I/O 密集型接口,希望用 asyncio 正确降低外部调用的延迟