无法从 python 中的模块导入异步函数

Can not import async function from module in python

我目前正在尝试在 python 中导入一个(自己编写的)异步函数,但编译器给我一条错误消息。请参阅下面的简约示例(是的,我知道在此示例中异步没有任何意义,但出于演示目的,我认为它很好)。

在 example2.py 中,编译器告诉我““等待”只允许在异步函数 Pylance 中使用”。如果我在 .ipynb 文件中启动相同的代码,编译器仍然会显示错误,但如果我 运行 它,它会按预期工作。

我的第一个怀疑是我需要在导入时将函数标记为异步,但我找不到任何方法可以做到这一点。 我的另一个想法是这是一个编辑器问题,我需要以某种方式为编译器定义一个异常。但是当我使用 VS Code 时,我认为现在有人已经解决了这个问题。

有谁知道问题是什么/如何解决? 我想了解为什么会出现这个问题。

example.py:

async def add():
    return 1+1

example2.py:

from example import  add
x =await add()

正在阅读Python Async/Await doc

import asyncio
from example import add

x = asyncio.run(add())
print(f'x={x}')

调用一个 async 函数 returns 一个 Promise.

您必须等待通过调用 async 函数生成的 Promise。