ImportError: невозможно импортировать имя «Users» из «user» - PullRequest
3 голосов
/ 15 мая 2019

Добрые люди, чтобы вы поняли, я делаю в 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 ]

1 голос
/ 15 мая 2019

Ваш вопрос очень неясен, вы говорите "он возвращает мне эту ошибку", но затем не сообщаете об ошибке, которую получаете.Из того, что я могу собрать, вы должны получить ошибку: ImportError: cannot import name 'loginUser' from 'app' (C:\User\ProjectName\app.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
1 голос
/ 15 мая 2019

Вам нужно импортировать только тот модуль / файл, который вам не нужен для импорта класса.Где бы вы ни хотели использовать класс 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...