@AlikhanPython
Учу программирование на Python.

RuntimeError: There is no current event loop in thread 'Thread-2'. Что делать?

Решил использовать многопоточность в своем боте написанном на Python при помощи модуля Aiogram.
examination_thread = Thread(target=examination)
start_polling_thread = Thread(target=executor.start_polling, args=(dp,))

Создал два потока, один вызывает мою функцию, а второй функцию executor.start_polling, для запуска бота.
(Перед этим всё нужное было импортировано).

Но мне выдает вот такую ошибку:
Traceback (most recent call last):
  File "C:\Users\123\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\123\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
C:\Users\123\AppData\Local\Programs\Python\Python38\lib\threading.py:870: RuntimeWarning: coroutine 'examination' was never awaited 
  self._target(*self._args, **self._kwargs)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
  File "C:\Users\123\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\utils\executor.py", line 45, in start_polling 
    executor.start_polling(
  File "C:\Users\123\AppData\Local\Programs\Python\Python38\lib\site-packages\aiogram\utils\executor.py", line 317, in start_polling
    loop = asyncio.get_event_loop()
  File "C:\Users\123\AppData\Local\Programs\Python\Python38\lib\asyncio\events.py", line 639, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'Thread-2'.
  • Вопрос задан
  • 1920 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Мешать многопоточность с асинхронностью - плохая идея. Зачем тебе это потребовалось?
Если нужно выполнить длительную синхронную задачу в отдельном потоке, используй loop.run_in_executor() - он позволяет аккуратно представить выполнение потока как обычную асинхронную задачу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы