ImportError: невозможно импортировать имя «Users» из «user»

Хорошие люди, чтобы вы поняли, я делаю в 2 файлах мою работу. Но когда я нахожусь в файле Y и импортирую X, он запускается, у него обычные манипуляции с экраном. Теперь, когда я импортирую Y в X, уже импортировав в Y X, он возвращает мне эту ошибку. Короче говоря, я вхожу в систему в ближайшее время, но когда я хочу выйти (вернуться в окно входа в систему), он не позволит мне.

Я ничего не пробовал, потому что не знаю, что делать.

from app import loginUser

class Users:

   def __init__(self,window):      
      # Criando o sistema
      self.wind = window
      self.wind.title("System F2T")

 from user import Users

 class loginUser:
 #Metodo de inicio ao sistema de login
   def __init__(self, window, master=None):   
      # Criando o sistema de login
       self.wind = window
       self.wind.title("System F2T")

Я надеюсь, что вы можете помочь мне, потому что я остановился на этом. Я положил кусок кода, чтобы понять, что я делаю взаимодействие от одного к другому

Всего 2 ответа


Ваш вопрос очень неясен, вы говорите «он возвращает мне эту ошибку», но затем не сообщаете об ошибке, которую получаете. Из того, что я могу собрать, вы должны получить ошибку: ImportError: cannot import name 'loginUser' from 'app' (C:UserProjectNameapp.py)

Эта ошибка возникает из-за того, что вы пытаетесь импортировать Users из user.py в app.py , а также пытаетесь импортировать loginUser из app.py в users.py . Это цикл импорта и вызывает ошибку.

Короче говоря, user.py не может полагаться на код из app.py если app.py также полагается на сам user.py

Один из способов исправить эту ошибку - импортировать loginUser в определенные функции, которые ему необходимы в User (или наоборот, в зависимости от того, что нужно сделать двум вашим классам).

Например, если объекту Users необходимо создать нового loginUser в функции с именем createUser() , эти два файла будут выглядеть следующим образом

# app.py

from user import Users

class loginUser:
 #Metodo de inicio ao sistema de login
   def __init__(self, window, master=None):   
      # Criando o sistema de login
       self.wind = window
       self.wind.title("System F2T")
# user.py

class Users:

   def __init__(self,window):      
      # Criando o sistema
      self.wind = window
      self.wind.title("System F2T")

   def createUser(self):
      from app import loginUser
      newUser = loginUser(self.wind)
      return newUser

Вам нужно импортировать только тот модуль / файл, который вам не нужен для импорта класса. Где бы вы ни хотели использовать класс loginuser используйте его, используя app.loginUser() и user.Users() для класса Users . Ниже код отлично работает для меня:

import app
class Users:
   def __init__(self,window):      
      return app.loginUser()

import user
class loginUser:
   def __init__(self, window, master=None):  
       return user.Users()

Есть идеи?

10000