Что за проблема?from app.handlers import router ImportError: cannot import name 'router' from 'app.handlers' aiogram3
import asyncio
import logging
import sys
from aiogram import Bot, Dispatcher
from app.handlers import router
from config import TOKEN
async def main():
bot = Bot(token=TOKEN)
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling(bot)
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Exit')
это уже файл handlers.py который находится в папке app
from aiogram import Router
from aiogram.types import Message
from aiogram.filters import CommandStart
router = Router()
@router.message(CommandStart())
async def cmd_start(message: Message):
await message.answer('Добро пожаловать!')
from app.handlers import router
ImportError: cannot import name 'router' from 'app.handlers'
Ответы (2 шт):
Автор решения: Black Square
→ Ссылка
Скорее всего вы не обозначили папку как модуль Python, добавьте пустой файл __init__.py в папку handlers и app
Автор решения: Maxim
→ Ссылка
У вас очень сильно поехало форматирование вопроса. Если файлы расположены так:
app
-- main.py
-- handlers
-- router.py
то надо в папку handlers добавить пустой файл __init__.py и импортировать как
from handlers import router
Чтобы было так:
app
-- main.py
-- handlers
-- __init__.py
-- router.py