RuntimeError: Timeout context manager should be used inside a task - aiogram
Пишу тестового бота, чтобы разобраться с aiogram. При запуске бота сразу появляется ошибка Timeout context manager should be used inside a task при вызове dp.start_polling(bot)
Код программы main.py:
bot = Bot(config.BOT_KEY)
dp = Dispatcher(bot)
setup_handlers(dp)
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
try:
asyncio.run(main())
except Exception as ex:
log.error(ex)
handlers.py:
def setup_handlers(dp: Dispatcher):
dp.register_message_handler(_on_start, Command("start"))
dp.register_message_handler(_get_info, Command("info"))
async def _on_start(message: types.Message):
await message.answer(messages.hello_message)
async def _get_info(message: types.Message):
await message.answer(messages.info)
Используемые версии:
Python 3.11.6
aiogram 2.9
aiohttp 3.9.1
aiosignal 1.3.1
Стек ошибки
Traceback (most recent call last):
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/main.py", line 19, in <module>
asyncio.run(main())
File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/main.py", line 16, in main await dp.start_polling(bot) File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/dispatcher/dispatcher.py", line 288, in start_polling await self.reset_webhook(check=False) File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/dispatcher/dispatcher.py", line 259, in reset_webhook return await self.bot.delete_webhook() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/bot.py", line 143, in delete_webhook result = await self.request(api.Methods.DELETE_WEBHOOK, payload) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/base.py", line 201, in request
return await api.make_request(self.session, self.__token, method, data, files,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/api.py", line 103, in make_request
async with session.post(url, data=req, **kwargs) as response:
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/client.py", line 1187, in __aenter__
self._resp = await self._coro
^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/client.py", line 500, in _request
with timer:
File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/helpers.py", line 715, in __enter__
raise RuntimeError(
RuntimeError: Timeout context manager should be used inside a task
Ответы (1 шт):
Автор решения: LightChimera
→ Ссылка
Как я понял, это была ошибка прошлых версий aiogram, но при попытке обновиться до более новой версии все время происходила какая-то внутренняя ошибка pip`a. Установил компилятор Rust, после чего удалось обновить aiogram до версии 3.2.0 и ошибка исчезла.