Asyncio вызывает ошибку «RuntimeError: цикл событий закрыт»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Asyncio вызывает ошибку «RuntimeError: цикл событий закрыт»

Сообщение Anonymous »

У меня есть очень простой игрушечный пример, в котором используются Anthropic и asyncio.
Это цикл, который несколько раз запускает функцию asyncio.run().
Иногда возникает ошибка RuntimeError: Event цикл закрыт, во время итераций возникает исключение, и я не понимаю, почему.
Думаю, я неправильно использую asyncio, но не могу понять, где.
Кажется, код работает нормально хотя.
import asyncio
from time import perf_counter

import numpy as np
from anthropic import Anthropic, AsyncAnthropic

async def coroutine1():
prompt = "Who discovered gravity. Answer in 10 words."

client = AsyncAnthropic()
message = await client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)

return message.content[0].text

async def coroutine2():
prompt = "Who discovered radioactivity. Answer in 10 words."

client = AsyncAnthropic()
message = await client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)

return message.content[0].text

async def main():
async with asyncio.TaskGroup() as tg:
t0 = tg.create_task(coroutine1())
t1 = tg.create_task(coroutine2())
print(t0.result())
print(t1.result())

if __name__ == "__main__":
for i in range(10):
tic = perf_counter()
asyncio.run(main())
toc = perf_counter()
print(f"Elapsed time = {toc - tic:.3f}")

Измените ниже. Вот полная трассировка:
Task exception was never retrieved
future:
Traceback (most recent call last):
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpx/_client.py", line 2031, in aclose
await self._transport.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 389, in aclose
await self._pool.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 313, in aclose
await self._close_connections(closing_connections)
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 305, in _close_connections
await connection.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 171, in aclose
await self._connection.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 265, in aclose
await self._network_stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 55, in aclose
await self._stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/anyio/streams/tls.py", line 201, in aclose
await self.transport_stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1287, in aclose
self._transport.close()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/selector_events.py", line 1206, in close
super().close()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/selector_events.py", line 871, in close
self._loop.call_soon(self._call_connection_lost, None)
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/base_events.py", line 792, in call_soon
self._check_closed()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/base_events.py", line 539, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Task exception was never retrieved
future:
Traceback (most recent call last):
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpx/_client.py", line 2031, in aclose
await self._transport.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 389, in aclose
await self._pool.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 313, in aclose
await self._close_connections(closing_connections)
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 305, in _close_connections
await connection.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 171, in aclose
await self._connection.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 265, in aclose
await self._network_stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 55, in aclose
await self._stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/anyio/streams/tls.py", line 201, in aclose
await self.transport_stream.aclose()
File "/Users/foo/Desktop/async/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1287, in aclose
self._transport.close()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/selector_events.py", line 1206, in close
super().close()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/selector_events.py", line 871, in close
self._loop.call_soon(self._call_connection_lost, None)
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/base_events.py", line 792, in call_soon
self._check_closed()
File "/Users/foo/.pyenv/versions/3.12.1/lib/python3.12/asyncio/base_events.py", line 539, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed


Подробнее здесь: https://stackoverflow.com/questions/791 ... -is-closed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Asyncio вызывает ошибку «RuntimeError: цикл событий закрыт»
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Asyncio вызывает ошибку «RuntimeError: цикл событий закрыт»
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • «RuntimeError: цикл событий закрыт» при использовании pytest-asyncio для проверки маршрутов FastAPI
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Asyncio: RuntimeError: цикл событий закрыт
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Asyncio.run () Raise "RuntimeError: цикл событий закрыт" в ноутбуке Юпитера
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»