Помогите с цикличным инпутом

Всем привет! Пишу ВК бота на python с кнопками, командами и т.д. Хочу сделать так, чтобы каждая функция была в своём файле .py, однако столкнулся с проблемой цикличного импорта. Помогите её решить, код ниже Kara.py

from vk_api.longpoll import VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
import random
from vk_varaibles.variables import admins
from vk_varaibles.VK_base import vk_base, user_data
from Kara_main.admin import Adminmenu


vk_session = vk_base.vk_session
longpool = vk_base.longpoll
vk = vk_base.vk

# Основной цикл обработки событий
for event in vk_base.longpoll.listen():
    
    sms = event.type
    
    # Если пришло новое сообщение
    if sms == VkEventType.MESSAGE_NEW and event.to_me:

        # Получаем текст сообщения
        message = event.text.lower()

        # Отправляем ответ на различные команды
        if message == 'привет' or message == '/reset' or message == '/start':
            vk_session.method('messages.send', {'user_id': event.user_id, 'message': 'Привет!', 'random_id': random.randint(1,100000)})
            
        elif message == 'admin' or message == '/admin':
            if event.user_id == admins.Root:
                Adminmenu()
                
            else:
                keyboard = VkKeyboard(one_time=True)                              
                keyboard.add_button('Главная', color=VkKeyboardColor.NEGATIVE)                
                vk_session.method('messages.send', {'user_id': event.user_id, 'message': 'У Вас нет доступа к этой части меню!!!', 'random_id': random.randint(1,100000)})
                
                                
                #if event.text == 'Главная':
                    #if event.user_id in user_states:
                       # state = user_states[event.user_id]
                       # if state == 'admin_menu':
                        #    user_states[event.user_id] = 'main_menu'
                #user_states[event.user_id] = 'main_menu'  # устанавливаем состояние "главное меню"
                #vk_session.method('messages.send', {'user_id': event.user_id, 'message': 'Хорошо, спасибо!', 'random_id': random.randint(1,100000)})
            
        elif message == 'пока':
            vk_session.method('messages.send', {'user_id': event.user_id, 'message': 'Пока, до скорой встречи!', 'random_id': random.randint(1,100000)})
        else:
            vk_session.method('messages.send', {'user_id': event.user_id, 'message': 'Не понимаю вашу команду.', 'random_id': random.randint(1,100000)})

admin.py

import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_varaibles.VK_base import vk_base, user_data
from vk_varaibles.variables import users
import random


vk_session = vk_base.vk_session
longpool = vk_base.longpoll
vk = vk_base.vk

# переменная для хранения состояний пользователей
user_states = users.user_states
user_name = user_data.get_user_name
user_surname = user_data.get_user_surname



def Adminmenu():
    user_states[event.user_id] = 'admin_menu'  # устанавливаем состояние "админ-меню"
    keyboard = VkKeyboard(one_time=True)
    keyboard.add_button('Режим "отладки', color=VkKeyboardColor.POSITIVE)
    keyboard.add_button('Списки', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('Настройки Кэры', color=VkKeyboardColor.PRIMARY)
    keyboard.add_button('Обновить неделю', color=VkKeyboardColor.PRIMARY)
    keyboard.add_line()
    keyboard.add_button('Главная', color=VkKeyboardColor.NEGATIVE)

    vk_session.method('messages.send', {'user_id': event.user_id, 
                                        'message': f'Приветствую Вас, Администратор {user_name} {user_surname}! \n Выберите действие для продолжения: ', 
                                        'random_id': random.randint(1,100000)})
                                       
    if event.text == 'Главная':
        if event.user_id in user_states:
            state = user_states[event.user_id]
            if state == 'admin_menu':
                user_states[event.user_id] = 'main_menu'
                #from main import main
                #return main
                #return main

VK_base.py

import vk_api
from vk_varaibles.tokens import token_vk
from vk_api.longpoll import VkLongPoll, VkEventType



class vk_base:
    # Инициализируем библиотеку vk_api
    vk_session = vk_api.VkApi(token=token_vk.token)
    # Получаем экземпляр LongPoll
    longpoll = VkLongPoll(vk_session)
    vk = vk_session.get_api()
    


class user_data:
    def get_user_name(user_id, vk):
        response = vk.users.get(user_ids=user_id)
        first_name = response[0]['first_name']
        return first_name
    
    def get_user_surname(user_id, vk):
        response = vk.users.get(user_ids=user_id)
        last_name = response[0]['last_name']
        return last_name

Ответы (0 шт):