关于 python-async
面向 Python 应用的 asyncio 与 async/await 模式技能,按主题提供渐进式指南,涵盖并发、错误处理和测试。
主要功能
- 01async/await 核心模式
- 02任务与并发管理
- 03使用信号量和锁限流
- 04超时、错误与取消处理
- 05使用 pytest-asyncio 测试
- 06常见问题与最佳实践
适用场景
- 01构建异步 Web API
- 02执行并发 I/O 操作
- 03创建并发网络爬虫
- 04开发 WebSocket 应用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill python-async安装后在 Claude Code 中输入/python-async确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
modules/advanced-patterns.mdbasic-patterns.mdconcurrency-control.mderror-handling-timeouts.mdpitfalls-best-practices.mdreal-world-applications.mdtesting-async.md详细介绍
原文在翻译后有更新,译文可能不是最新。
异步 Python 模式
适用于 Python 应用的 asyncio 和 async/await 模式。
快速开始
import asyncio
async def main():
print("Hello")
await asyncio.sleep(1)
print("World")
asyncio.run(main())
适用场景
- 构建异步 Web API(FastAPI、aiohttp)
- 实现并发 I/O 操作
- 使用并发请求创建网页爬虫
- 开发实时应用(WebSockets)
- 同时处理多个相互独立的任务
- 构建支持异步通信的微服务
不适用场景
- CPU 密集型优化——请改用 python-performance
- 测试异步代码——请使用 python-testing 的 async 模块
模块
此技能采用渐进式加载。内容按主题整理为多个模块:
- 参见
modules/basic-patterns.md——核心 async/await、gather() 和任务管理 - 参见
modules/concurrency-control.md——用于速率限制的信号量和锁 - 参见
modules/error-handling-timeouts.md——错误处理、超时和取消 - 参见
modules/advanced-patterns.md——上下文管理器、迭代器、生产者-消费者 - 参见
modules/testing-async.md——使用 pytest-asyncio 进行测试 - 参见
modules/real-world-applications.md——网页抓取和数据库操作 - 参见
modules/pitfalls-best-practices.md——常见错误和最佳实践
根据需要加载特定模块,或查阅所有模块以获取详细指导。
退出标准
- 正确应用异步模式
- 异步代码中没有阻塞操作
- 已实现适当的错误处理
- 在需要时配置速率限制
- 测试通过 pytest-asyncio
故障排除
常见问题
RuntimeError: no current event loop
使用 asyncio.run() 作为入口点。在 Python 3.10 及更高版本中避免使用 get_event_loop()。
异步上下文中的阻塞调用
将同步 I/O 移至 asyncio.to_thread() 或 loop.run_in_executor()。
测试无限期挂起
确保已安装 pytest-asyncio,并且测试函数使用 @pytest.mark.asyncio 装饰。
评论
支持 Markdown