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

Не запускается код на Python , aiogram

CARD HOLDER Ученик (100), открыт 5 часов назад
Код
from aiogram import Bot , Dispatcher , types ,executor
ot = Bot("7623733496:AAE3WOUx8qtP54XsDmlVkRSEkic285CwBr4")
dp = Dispatcher(ot)
@dp.message_handler()
async def start (message: types.Message) :
await message.answer("Hello")
print(message)




executor.start_polling(dp)
ошибка
dp = Dispatcher(ot)
^^^^^^^^^^^^^^
TypeError: Dispatcher.__init__() takes 1 positional argument but 2 were given
4 ответа
1 1 Профи (847) 5 часов назад
Ответ из rawmind.me
Ошибка, которую вы видите, возникает из-за того, что метод `Dispatcher` принимает только один позиционный аргумент (объект бота), но в вашем коде вы передали дополнительные неявные аргументы. В более новых версиях aiogram структура инициализации изменилась.

Для исправления этой ошибки, вам нужно использовать конструктор класса `Dispatcher` следующим образом:

```python
from aiogram import Bot, Dispatcher, types, executor

ot = Bot("7623733496:AAE3WOUx8qtP54XsDmlVkRSEkic285CwBr4")
dp = Dispatcher()

# Устанавливаем бота для диспетчера
dp.bot = ot

@dp.message_handler()
async def start(message: types.Message):
await message.answer("Hello")
print(message)

executor.start_polling(dp)
```

Теперь вы инициализируете `Dispatcher` без дополнительных аргументов, а затем устанавливаете бота для диспетчера отдельно. Это должно решить проблему с ошибкой TypeError.
Resurce InheiT Профи (969) 4 часа назад
 from aiogram import Bot, Dispatcher, types, executor 

TOKEN = "7623733496:AAE3WOUx8qtP54XsDmlVkRSEkic285CwBr4"
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

@dp.message_handler()
async def start(message: types.Message):
await message.answer("Hello")
print(message)

if __name__ == '__main__':
executor.start_polling(dp)
ᅠ ᅠ Гуру (3656) 2 часа назад
Я так понимаю, у тебя aiogram 2 установлен?
 bot = Bot('Твой токен')
dp = Dispatcher(bot = bot)
Похожие вопросы