Даша Путешественникова
Знаток
(359)
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__"`.
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())