Top.Mail.Ru
Ответы
Аватар пользователя
10 месяцев назад
от

Ошибка executor в библиотеке aiogram

1
 Traceback (most recent call last): 
1
   File "C:\Users\Almaz\Desktop\шаблон для бота\1\main.py", line 2, in <module> 
1
     from aiogram import Bot, Dispatcher, executor 
1
 ImportError: cannot import name 'executor' from 'aiogram' (C:\Users\Almaz\Desktop\py\ultrabottest\ultrabot\venv\Lib\site-packages\aiogram\__init__.py) 
1
 Process finished with exit code 1 

Привет, захотел сделать бота, и в строчке кода:
from aiogram import Bot, Dispatcher, executor
Вылезает ошибка. Ее прикрепил выше

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
10мес

Скорее всего Aiogram 3 версии. Там нет executor'а, там нужно от диспетчера вызывать пулинг, так:

asyncio.run(dp.start_polling(bot))

Если в код не импортирован asyncio, нужно импортировать.

Аватар пользователя
10мес

Ошибка, которую вы видите, связана с изменениями в библиотеке aiogram. В более новых версиях aiogram модуль executor был удален. Вместо этого теперь используется модуль router и функция start_polling.

Вот пример кода, который использует новый подход для запуска бота с использованием aiogram:

123456789101112131415161718192021
 from aiogram import Bot, Dispatcher, types 
from aiogram.contrib.middlewares.logging import LoggingMiddleware 
from aiogram.utils.executor import start_polling 
 
API_TOKEN = 'YOUR_BOT_API_TOKEN' 
 
# Initialize bot and dispatcher 
bot = Bot(token=API_TOKEN) 
dp = Dispatcher(bot) 
dp.middleware.setup(LoggingMiddleware()) 
 
@dp.message_handler(commands=['start', 'help']) 
async def send_welcome(message: types.Message): 
    await message.reply("Hi!\nI'm your bot!") 
 
@dp.message_handler() 
async def echo(message: types.Message): 
    await message.answer(message.text) 
 
if __name__ == '__main__': 
    start_polling(dp, skip_updates=True) 

В этом примере:

Импортируется start_polling вместо executor.

Используется start_polling для запуска бота.

Убедитесь, что у вас установлена последняя версия aiogram. Вы можете обновить её, выполнив команду:

1
 pip install --upgrade aiogram