【问题标题】:ImportError: cannot import name 'Users' from 'user'ImportError:无法从“用户”导入名称“用户”
【发布时间】:2019-05-15 03:47:05
【问题描述】:

各位好人,请理解,我的工作分为 2 个文件。但是当我在 Y 文件中并导入 X 时,它会运行,它具有正常的屏幕操作。现在,当我在 X 中导入 Y 时,已经将 X 导入到 Y 中,它返回了这个错误。简而言之,我很快就上系统了,但是当我想退出时(回到登录窗口)它不会让我。

我没有尝试任何事情,因为我不知道该怎么做。

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")

我希望你能帮助我,因为我停在了这里。我放了一段代码,以便了解我正在从一个到另一个进行交互

【问题讨论】:

  • 这两个文件的名称是什么?
  • 试试from folder.file import classname
  • 这是一个循环导入,两个文件都导入另一个?
  • 是的!确切地说,他们都很关心。
  • 我不理解这个folder.file,在我的错误/ModuleNotFoundError: No module named 'folder'

标签: python tkinter import


【解决方案1】:

您只需要导入不需要导入类的模块/文件。无论您想在哪里使用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()

【讨论】:

  • 我按照你说的做了,并给出了以下错误。 ModuleNotFoundError:没有名为“用户”的模块
  • @felipi 它在我的系统中运行良好。你能分享你的代码和系统信息吗?
【解决方案2】:

您的问题非常不清楚,您说“它返回了这个错误”,但没有提供您遇到的错误。据我所知,你应该得到错误:ImportError: cannot import name 'loginUser' from 'app' (C:\User\ProjectName\app.py)

出现此错误是因为您尝试将 Usersuser.py 导入到 app.py,并且还尝试将 loginUserapp.py 导入到 users.py。这是一个导入循环,会导致错误。

简而言之,user.py 不能依赖来自 app.py 的代码,如果 app.py 也依赖于user.py 本身。

解决此错误的一种方法是将 loginUser 导入到 User 中所需的特定函数中(或反之亦然,具体取决于您的两个类需要做什么)。

例如- 如果一个Users对象需要在一个名为createUser()的函数中创建一个新的loginUser,这两个文件应该如下所示

# 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

【讨论】:

    猜你喜欢
    • 2018-07-03
    • 2019-07-31
    • 1970-01-01
    • 2021-08-20
    • 2017-01-26
    • 2022-01-22
    • 2021-06-30
    • 2020-10-19
    • 2018-08-13
    相关资源
    最近更新 更多