IPython(Jupyter Notebook)에서는 asyncio.run()
대신 await
을 바로 사용할 수 있어 편리하다 (이 때문에 asyncio.run()을 사용하지 못해 다양한 문제가 발생하지만...).
파이썬 REPL(cmd에 python을 쳤을 때 바로 나타나는 게 REPL이다.)에도 비슷하게 사용할 수 있는 기능이 있다.
python -m asyncio
를 작성하면 asyncio REPL을 사용할 수 있다.
asyncio REPL 3.11.5
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
>>> await asyncio.sleep(1)
>>> asyncio.gather(asyncio.sleep(1), )
<_GatheringFuture pending>
>>> await asyncio.gather(asyncio.sleep(1), )
[None]
>>> # 아쉽게도 asyncio REPL에서도 asyncio.run()은 사용하지 못한다.
>>> asyncio.run(asyncio.sleep(1))
RuntimeError: asyncio.run() cannot be called from a running event loop
직관적이고 IPython에서도 줄곧 사용하던 기능이라 익숙하다.