Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка Python Aiogram

Саид Ирматов Ученик (172), на голосовании 3 часа назад
я делал тг бота для анонимных сообщений с дб

 Traceback (most recent call last): 
File "C:\Users\McSix\Desktop\anonim\main.py", line 1, in <module>
from aiogram import Bot, Dispatcher, executor, types
ImportError: cannot import name 'executor' from 'aiogram' (C:\Users\McSix\PycharmProjects\bottt\.venv\Lib\site-packages\aiogram\__init__.py)
вот начало кода:
 from aiogram import Bot, Dispatcher, executor, types 
from config import TOKEN
from database import Database

bot = Bot(мой токен здесь)
dispatcher = Dispatcher(bot)

database = Database()


@dispatcher.message_handler(commands=['start'])
async def start(message: types.Message):
await message.answer(" Hello, I'm AnonymousChatBot!")

markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn = types.KeyboardButton("Find a partner")
markup.add(btn)

await message.answer("Press the button to find a partner", reply_markup=markup)
Ошибку я понял, то что у ауграм новая версия и в новой версии убрали модуль executor
Но как исправить?
Голосование за лучший ответ
Хир Мыслитель (5064) 1 месяц назад
import asyncio
from aiogram import Bot, Dispatcher, types
from config import TOKEN
from database import Database

bot = Bot(token=TOKEN)
dispatcher = Dispatcher(bot)

database = Database()

@dispatcher.message_handler(commands=['start'])
async def start(message: types.Message):
await message.answer(" Hello, I'm AnonymousChatBot!")

markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn = types.KeyboardButton("Find a partner")
markup.add(btn)

await message.answer("Press the button to find a partner", reply_markup=markup)

async def main():
await dp.start_polling()

if __name__ == '__main__':

asyncio.run(main())
ХирМыслитель (5064) 1 месяц назад
Если это только начало кода, то
async def main():
await dp.start_polling()

if __name__ == '__main__':

asyncio.run (main())

В самый конец
Саид Ирматов Ученик (172) Хир,
Саид ИрматовУченик (172) 1 месяц назад
Хир Мыслитель (5064) Саид Ирматов, поставь новую visual c++, там ссылку в консоли дало. Потом pip uninstall aiohttp pip install aiohttp pip install aiogram==2.25.2
Саид ИрматовУченик (172) 1 месяц назад
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
aiogram 3.15.0 requires aiohttp<3.11,>=3.9.0, but you have aiohttp 3.11.11 which is incompatible.
S.H.I. Оракул (69272) 1 месяц назад
В строке импорта уберите executor:
 from aiogram import Bot, Dispatcher, types 
Скорее всего, в вашем коде где-то внизу есть блок, который запускает бота, выглядящий примерно так:
 if __name__ == '__main__': 
executor.start_polling(dispatcher, skip_updates=True)
Этот блок вам нужно будет изменить. Вместо executor.start_polling() используйте метод dispatcher.start_polling(bot).
Вот как должен выглядеть обновленный блок запуска:
 async def main(): 
await dispatcher.start_polling(bot)

if __name__ == '__main__':
import asyncio
asyncio.run(main())
Похожие вопросы