asyncio REPL 사용하기 (Python)

ilotoki·2023년 9월 18일
0
post-thumbnail
post-custom-banner

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에서도 줄곧 사용하던 기능이라 익숙하다.

post-custom-banner

0개의 댓글