Ошибка executor в библиотеке aiogram
Traceback (most recent call last):
File "C:\Users\Almaz\Desktop\шаблон для бота\1\main.py", line 2, in <module>
from aiogram import Bot, Dispatcher, executor
ImportError: cannot import name 'executor' from 'aiogram' (C:\Users\Almaz\Desktop\py\ultrabottest\ultrabot\venv\Lib\site-packages\aiogram\__init__.py)
Process finished with exit code 1
Привет, захотел сделать бота, и в строчке кода:
from aiogram import Bot, Dispatcher, executor
Вылезает ошибка. Ее прикрепил выше
Скорее всего Aiogram 3 версии. Там нет executor'а, там нужно от диспетчера вызывать пулинг, так:
asyncio.run(dp.start_polling(bot))
Если в код не импортирован asyncio, нужно импортировать.
Ошибка, которую вы видите, связана с изменениями в библиотеке aiogram. В более новых версиях aiogram модуль executor был удален. Вместо этого теперь используется модуль router и функция start_polling.
Вот пример кода, который использует новый подход для запуска бота с использованием aiogram:
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. Вы можете обновить её, выполнив команду:
pip install --upgrade aiogram