gpt4 book ai didi

python - 如何调试异步python代码?

转载 作者:行者123 更新时间:2023-12-04 12:01:12 25 4
gpt4 key购买 nike

我最近在玩异步代码,当我尝试在 PyCharm 中调试代码时,我看到了一些非常奇怪的行为,我认为这是因为底层架构导入 asyncio。
这是我正在谈论的代码。

async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y

tasks = [compute(x,x) for x in range(10)]
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

这很奇怪,因为当我在协程执行中设置断点时,它永远不会中断并且整个代码很容易完成运行,除此之外我没有得到太多事件循环的细节(除了堆栈中的一些困惑)。

所以这是我的问题
  • 在调试异步代码方面是否有任何标准或一些好的做法?
  • 如何查看事件循环的执行流程?
  • 为什么它不在 async 函数内部中断?
  • 最佳答案

    只是在这里添加这里作为示例:


    async def compute(x, y):
    print("Compute %s + %s ..." % (x, y))
    await asyncio.sleep(1.0) # add breakpoint here and then run it in debug mode
    return x + y

    tasks = [compute(x,x) for x in range(10)]
    loop = asyncio.get_event_loop()
    loop.set_debug(True)
    loop.run_until_complete(asyncio.wait(tasks))
    loop.close()

    关于python - 如何调试异步python代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526027/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com