如下圖,在使用 asyncio 呼叫事件迴圈 loop 時出現錯誤 RuntimeError: This event loop is already running
:
import asyncio
async def execute(x):
print('Number:', x)
coroutine = execute(1)
print('Coroutine:', coroutine)
print('After calling execute')
loop = asyncio.get_event_loop()
loop.run_until_complete(coroutine)
print('After calling loop')
執行程式時出現錯誤 RuntimeError: This event loop is already running
:
查閱資料後,發現所使用的 Python 編輯器為 Spyder,其連線著 IPython 核心,而 IPython 核心本身在事件迴圈上執行,而 asyncio 不允許巢狀其事件迴圈,因此會出現如上圖的錯誤資訊。
切換到 Pycharm 編輯器即可解決問題: