Устранение ошибки Passing coroutines is forbidden, use tasks explicitly при использовании aioschedule в Python 3.11

В Python для выполнения задач через определенные интервалы времени, например, при разработке Telegram ботов, часто используется библиотека aioschedule.

К сожалению, пакет aioschedule не обновлялся уже несколько лет и потерял совместимость с последними версиями Python. При использовании в Python 3.11 в момент выполнения задачи выбрасывается ошибка

Passing coroutines is forbidden, use tasks explicitly.

Варианты решения

1. Перейти на другой шедулер — пакет, позволяющий выполнять операции в нужные интервалы времени.

В качестве альтернативы можно использовать, например, пакет apscheduler.

2. Внести изменения в вашу локальную копию пакета aioschedule.

Найдите на вашем локальном компьютере куда установлен пакет aioschedule. Это может быть общая директория site-packages с пакетами для всех пользователей операционной системы, или же директория site-packages в локальном виртуальном окружении конкретного проекта, в котором используется aioschedule.

В поддиректории aioschedule откройте для редактирования файл __init__.py

В строке 107 замените

на

и сохраните внесенные изменения.

Теперь задачи aioschedule в вашем проекте будут выполняться корректно и ошибка «Passing coroutines is forbidden, use tasks explicitly.» не будет появляться.

5 4 голоса
Article Rating
Подписаться
Уведомить о
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии