RuntimeError : 이벤트 루프가 비동기 파이썬에서 닫혔습니다.

python_user

asyncpraw 라이브러리 를 사용하려고하는데 RuntimeError: Event loop is closed.

이것은 내 코드와 역 추적입니다.

암호

import asyncio
import asyncpraw

async def main():
    reddit = asyncpraw.Reddit('praw_ini_name')
    print('User is', await reddit.user.me())
    await reddit.close()

asyncio.run(main())

역 추적

User is python_user
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x0000021D2898C1F0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

그러나 이렇게 이벤트 루프를 시작하면 이것은 발생하지 않습니다 (예외 없음).

import asyncio
import asyncpraw

async def main():
    reddit = asyncpraw.Reddit('praw_ini_name')
    print('User is', await reddit.user.me())
    await reddit.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

나는 최신 파이썬 버전에서 이벤트 루프를 시작하는 선호되는 방법이 첫 번째 스 니펫에 표시된 방법이라고 가정하고 있는데, 왜 작동하지 않습니까? 출력을 인쇄하더라도 내 코드에서 예외가 발생하는 이유는 무엇입니까?

저는 asyncpraw7.2.0 과 함께 Python 3.9.2를 사용하고 있습니다.

내가 본 Asyncio 이벤트 루프 폐쇄이다 , Python3.x RuntimeError에 이벤트 루프가 닫혀Aiohttp, Asyncio : RuntimeError에 이벤트 루프가 닫혀 그리고 나는 그들이 속는하지 않습니다 생각합니다. 내 질문은 왜 하나는 작동하지만 다른 하나는 작동하지 않는지 묻습니다.

사용하지 않으면 reddit.close()다음을 얻습니다.

User is python_user
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x0000025BAAAEF8B0>
Unclosed connector
connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x0000025BAAAF1640>, 174448.968)]']
connector: <aiohttp.connector.TCPConnector object at 0x0000025BAAAEFA90>

감사합니다.

미스터 미야기

asyncio.run 완료시 명시 적으로 루프를 닫습니다.

asyncio.run (coro, *, debug = False)

[...]
이 함수는 항상 새 이벤트 루프를 만들고 끝에서 닫습니다.

이는 이벤트 루프가 완료 되면 정리에 사용할 수 없음을 의미합니다 main. 대신 비동기 생성기 를 통해 또는 동 기적으로 정리를 결정적으로 수행해야합니다 .

루프를 수동으로 관리하고를 호출하지 않는 loop.close()경우 루프를 사용하여 정리 콜백을 예약 할 수 있습니다. 이것이 루프가 명시 적으로 재개되지 않는 한 정리가 실제로 실행 된다는 것을 반드시 의미하는 것은 아닙니다 .


특정 문제는 aiohttp 3.x알려진 문제입니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python Asyncio 오류 : "OSError : [WinError 6] 핸들이 잘못되었습니다."및 "RuntimeError : 이벤트 루프가 닫혔습니다."

분류에서Dev

Python Discord 봇 '이벤트 루프가 닫혔습니다'

분류에서Dev

RuntimeError : Future가 완료되기 전에 이벤트 루프가 중지되었습니다.

분류에서Dev

RuntimeError : python discord bot을 연결할 때 이벤트 루프가 닫힙니다.

분류에서Dev

Jupyter Notebook RuntimeError : 기존 이벤트 루프 내에서 HTMLSession을 사용할 수 없습니다.

분류에서Dev

요청 스트림 및 비동기 처리로 연결이 닫혔습니다.

분류에서Dev

기본 연결이 닫혔습니다.-웹 서비스

분류에서Dev

기본 연결이 닫혔습니다. 연결이 예기치 않게 닫혔습니다. 데이터가 너무 큽니까?

분류에서Dev

Flask asyncio aiohttp-RuntimeError : 스레드 'Thread-2'에 현재 이벤트 루프가 없습니다.

분류에서Dev

ipdb.set_trace () 설정 시도 중 : RuntimeError : 스레드 'Thread -....'에 현재 이벤트 루프가 없습니다.

분류에서Dev

MSDeploy "기본 연결이 닫혔습니다. 연결이 예기치 않게 닫혔습니다."

분류에서Dev

Python RuntimeError :이 이벤트 루프는 이미 실행 중입니다.

분류에서Dev

서버 전송 이벤트 연결이 닫혔거나 데이터가 수신되지 않았습니다.

분류에서Dev

서버 전송 이벤트 연결이 닫혔거나 데이터가 수신되지 않았습니다.

분류에서Dev

기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

분류에서Dev

내 While 루프가 파이썬에서 작동하지 않습니다.

분류에서Dev

루프-비동기 이벤트 사용

분류에서Dev

Ubuntu 16.04에서 포트가 닫혔습니다.

분류에서Dev

파이썬에서`await`가 이벤트 루프를 생성합니까?

분류에서Dev

스프링 보안 : 리스너 인스턴스에 대한 컨텍스트 파괴 이벤트 및 BeanFactory가 초기화되지 않았거나 이미 닫혔습니다.

분류에서Dev

통합 테스트에서 개체가 이미 닫혔습니다.

분류에서Dev

동시 요청 실패- "세션이 닫혔습니다!"

분류에서Dev

smtplib.SMTPServerDisconnected : 연결이 예기치 않게 닫혔습니다.

분류에서Dev

System.ServiceModel.CommunicationException : 기본 연결이 닫혔습니다.

분류에서Dev

기본 연결이 닫혔습니다.-WebClient 오류

분류에서Dev

C # WebClient 예외 : 기본 연결이 닫혔습니다.

분류에서Dev

Spring + JPA + Hibernate-IllegalStateException : BeanFactory가 초기화되지 않았거나 이미 닫혔습니다.

분류에서Dev

익스프레스 get 루트 이벤트가 작동하지 않습니다.

분류에서Dev

이 예외가 발생하지 않는 이유 : 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다.

Related 관련 기사

  1. 1

    Python Asyncio 오류 : "OSError : [WinError 6] 핸들이 잘못되었습니다."및 "RuntimeError : 이벤트 루프가 닫혔습니다."

  2. 2

    Python Discord 봇 '이벤트 루프가 닫혔습니다'

  3. 3

    RuntimeError : Future가 완료되기 전에 이벤트 루프가 중지되었습니다.

  4. 4

    RuntimeError : python discord bot을 연결할 때 이벤트 루프가 닫힙니다.

  5. 5

    Jupyter Notebook RuntimeError : 기존 이벤트 루프 내에서 HTMLSession을 사용할 수 없습니다.

  6. 6

    요청 스트림 및 비동기 처리로 연결이 닫혔습니다.

  7. 7

    기본 연결이 닫혔습니다.-웹 서비스

  8. 8

    기본 연결이 닫혔습니다. 연결이 예기치 않게 닫혔습니다. 데이터가 너무 큽니까?

  9. 9

    Flask asyncio aiohttp-RuntimeError : 스레드 'Thread-2'에 현재 이벤트 루프가 없습니다.

  10. 10

    ipdb.set_trace () 설정 시도 중 : RuntimeError : 스레드 'Thread -....'에 현재 이벤트 루프가 없습니다.

  11. 11

    MSDeploy "기본 연결이 닫혔습니다. 연결이 예기치 않게 닫혔습니다."

  12. 12

    Python RuntimeError :이 이벤트 루프는 이미 실행 중입니다.

  13. 13

    서버 전송 이벤트 연결이 닫혔거나 데이터가 수신되지 않았습니다.

  14. 14

    서버 전송 이벤트 연결이 닫혔거나 데이터가 수신되지 않았습니다.

  15. 15

    기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  16. 16

    내 While 루프가 파이썬에서 작동하지 않습니다.

  17. 17

    루프-비동기 이벤트 사용

  18. 18

    Ubuntu 16.04에서 포트가 닫혔습니다.

  19. 19

    파이썬에서`await`가 이벤트 루프를 생성합니까?

  20. 20

    스프링 보안 : 리스너 인스턴스에 대한 컨텍스트 파괴 이벤트 및 BeanFactory가 초기화되지 않았거나 이미 닫혔습니다.

  21. 21

    통합 테스트에서 개체가 이미 닫혔습니다.

  22. 22

    동시 요청 실패- "세션이 닫혔습니다!"

  23. 23

    smtplib.SMTPServerDisconnected : 연결이 예기치 않게 닫혔습니다.

  24. 24

    System.ServiceModel.CommunicationException : 기본 연결이 닫혔습니다.

  25. 25

    기본 연결이 닫혔습니다.-WebClient 오류

  26. 26

    C # WebClient 예외 : 기본 연결이 닫혔습니다.

  27. 27

    Spring + JPA + Hibernate-IllegalStateException : BeanFactory가 초기화되지 않았거나 이미 닫혔습니다.

  28. 28

    익스프레스 get 루트 이벤트가 작동하지 않습니다.

  29. 29

    이 예외가 발생하지 않는 이유 : 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다.

뜨겁다태그

보관