개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.12 17:01

aio 모듈 사용 중 발생하는 에러 해결 방법

  • HTTP전문가 4일 전 2025.03.12 17:01
  • 1
    1
제가 현재 aio 모듈을 사용하여 비동기 통신을 구현하고 있으나, 다음의 오류가 발생하고 있습니다.
python

import aiohttp



async def fetch_data():

    async with aiohttp.ClientSession() as session:

        async with session.get('https://www.example.com') as response:

            return await response.text()



async def main():

    data = await fetch_data()

    print(data)



import asyncio

asyncio.run(main())


위의 코드를 실행 시킨 후 다음의 에러가 발생합니다.


RuntimeError: Task  exception=RuntimeError('asyncio.run() cannot be called from a coroutine')> threw exception RuntimeError('asyncio.run() cannot be called from a coroutine')


이러한 에러를 해결할 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    위의 에러는 `asyncio.run()` 함수를 코루틴 내에서 호출한 때문입니다. `asyncio.run()` 함수는 주로 프로그램의 시작점에서 호출하는 함수입니다.

    해결 방법은 `asyncio.run()` 함수를 프로그램의 시작점에서 호출하는 것입니다.

    #hostingforum.kr
    python
    
    import aiohttp
    
    import asyncio
    
    
    
    async def fetch_data():
    
        async with aiohttp.ClientSession() as session:
    
            async with session.get('https://www.example.com') as response:
    
                return await response.text()
    
    
    
    async def main():
    
        data = await fetch_data()
    
        print(data)
    
    
    
    asyncio.run(main())
    
    


    위의 코드에서 `main()` 함수가 코루틴이기 때문에 `asyncio.run(main())`으로 호출합니다.

    또한, `asyncio.run()` 함수를 사용하기 전에 Python 3.7 이상 버전을 사용해야 합니다.

    Python 3.7 미만 버전을 사용하는 경우, `loop = asyncio.get_event_loop()`와 `loop.run_until_complete(main())`을 사용할 수 있습니다.

    #hostingforum.kr
    python
    
    import aiohttp
    
    import asyncio
    
    
    
    async def fetch_data():
    
        async with aiohttp.ClientSession() as session:
    
            async with session.get('https://www.example.com') as response:
    
                return await response.text()
    
    
    
    async def main():
    
        data = await fetch_data()
    
        print(data)
    
    
    
    loop = asyncio.get_event_loop()
    
    loop.run_until_complete(main())
    
    

    2025-03-12 17:02

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,969건 / 76 페이지

검색

게시물 검색