Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Aiogram Бот Найдите ошибку пожалуйста

скажите пожалуйста что не так с кодом
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
import asyncio

API_TOKEN = ""

bot = Bot(token = API_TOKEN)

dp = Dispatcher()

@dp.message(Command("start"))
async def send_welcome(message: types.Message):
await message.reply("Hi")

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

if __name__ == '__main__':
asyncio.run(main())

По дате
По рейтингу
Аватар пользователя
Новичок
6мес

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

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

Ошибка в коде кроется в строке `if name == 'main':`. В Python, имя модуля определяется как `__name__`, а не `name`.

Исправленный код:


```python
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
import asyncio

API_TOKEN = "YOUR_BOT_TOKEN" # Замените на ваш реальный токен

bot = Bot(token=API_TOKEN)

dp = Dispatcher()

@dp.message(Command("start"))
async def send_welcome(message: types.Message):
await message.reply("Hi")

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

if __name__ == 'main':
asyncio.run(main())
```



**Объяснение:**

* `__name__` - это специальная переменная в Python, которая хранит имя текущего модуля.
* Когда вы запускаете скрипт напрямую (без импорта), `__name__` имеет значение `"__main__"`.