Задать вопрос
@Wolfengo
Я ещё зелёный, сильно не душите

ImportError: cannot import name 'enter_client' from partially initialized module 'handlers' Что я сделал не так?

Инит хендлера 634a98fe9298a093563403.png

enter_client
async def enter_client(message, message_id):
    name_admin = clients_db.take_admin_r_name(message_id)
    client_id = clients_db.take_user_id_in_notification(message_id)
    await bot.send_message(client_id, f'С вами общается {name_admin}:\n'
                                      f'{message.text}',)


enter_admin
async def enter_admin(problem, text, message_client, last_connect):
    notification = clients_db.take_all_admin()
    for admins in notification:
        take_id_message = await bot.send_message \
            (chat_id=admins[1],
             text=f'Создано обращение от пользователя!\n'
                  f'Номер пользователя: +{clients_db.take_user_num(message_client.from_user.id)}\n'
                  f'Ссылка телеграм: @{message_client.chat.username}\n'
                  f'Жалоба: {problem}\n'
                  f'Текст обращения: \n\n{text}',
             reply_markup=buttons_connect)
        clients_db.add_notification(admins[0], last_connect, take_id_message.message_id, take_id_message.text)


Функции при которых они вызываются друг с другом не взаимодействуют, нужную информацию достают и записывают в бд, но почему-то когда я ещё не добавил "enter_client" всё работало хорошо.

Если я комментирую импорт "from handlers import enter_client", в файле админа, то всё запускается, но естественно, функция работать не будет
Если я комментирую импорт "from handlers import enter_admin", в файле клиент, то не работает, ссылаясь на ошибку (ImportError: cannot import name 'enter_client' from partially initialized module 'handlers')

Я могу не до конца понимать как работают импорты и буду очень рад, если кто-то сможет объяснить что не так?
  • Вопрос задан
  • 213 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Если я комментирую импорт "from handlers import enter_client", в файле админа, то всё запускается, но естественно, функция работать не будет
Если я комментирую импорт "from handlers import enter_admin", в файле клиент, то не работает, ссылаясь на ошибку (ImportError: cannot import name 'enter_client' from partially initialized module 'handlers')


Циклический импорт, с чем тебя и поздравляю. Так делать нельзя.

Определись уже с зависимостями, кто кому нужен? Зачем enter_client() ссылаться на контент из admin.py?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 дек. 2024, в 21:56
25000 руб./за проект
28 дек. 2024, в 18:50
1200 руб./в час
28 дек. 2024, в 18:20
50000 руб./за проект