Top.Mail.Ru
Ответы

Ошибка в коде пайтон

вылезает данная ошибка
TypeError: Dispatcher.__init__() takes 1 positional argument but 2 positional arguments (and 1 keyword-only argument) were given

вот код
from aiogram import Bot
from aiogram import Dispatcher
from aiogram.fsm.storage .memory import MemoryStorage
import configurebot

storage=MemoryStorage()
bot = Bot(token=configurebot.cfg['token'])
dp = Dispatcher(bot, storage=storage)

помогите пожалуйста

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

А какой у тебя aiogram? Третий? Если так, то Dispatcher не принимает аргумент bot в конструкторе

12345678
 from aiogram import Bot 
from aiogram import Dispatcher 
from aiogram.fsm.storage.memory import MemoryStorage 
import configurebot 
 
storage = MemoryStorage() 
bot = Bot(token=configurebot.cfg['token']) 
dp = Dispatcher(storage=storage) 

Обрати внимание на последнюю строчку. Убери у себя bot. Это должно помочь

Аватар пользователя
Оракул
4мес

Ошибка возникает из-за несовместимости вашего кода с новой версией aiogram (3.x). В aiogram 3.x изменился способ создания экземпляра Dispatcher. Вот как нужно исправить код:

123456789
 from aiogram import Bot, Dispatcher 
from aiogram.fsm.storage.memory import MemoryStorage 
import configurebot  
 
storage = MemoryStorage()  
bot = Bot(token=configurebot.cfg['token'])  
 
# Создаем Dispatcher без передачи бота 
dp = Dispatcher(storage=storage)  # <-- Исправлено здесь 

Затем при запуске бота передавайте экземпляр Bot в метод start_polling:

123456
 async def main(): 
    await dp.start_polling(bot) 
 
if __name__ == "__main__": 
    import asyncio 
    asyncio.run(main()) 
Аватар пользователя
Знаток
4мес

в токене пробелы сделай и попробуй опять