【问题标题】:ImportError when Importing Classes导入类时的 ImportError
【发布时间】:2020-10-17 23:10:27
【问题描述】:

我有一个关于导入模块/包的问题,​​如果有人能解决我的困惑,我似乎无法解决这个问题。 我有一个名为 parent_directory 的主文件夹 在这里面我有两个包,package1 包含模块,module1,module2 和一个名为 package2 的文件夹,子文件夹 package2 包含模块,module3

module1.py 包含

class module1:
print("I am MODULE 1 in PACKAGE 1")

module2.py 包含

class module1:
print("I am MODULE 2 in PACKAGE 1")

module3.py 包含

class module3:
print("I am MODULE 3 in PACKAGE 2")

当我打开 OOP lab3.py 并使用以下

from package1.module1 import module1
module1()

打印输出是,我是 PACKAGE 1 中的 MODULE 1,这是我所期望的,但是,如果我将其更改为

from package1.module2 import module2
module2()

打印输出是,我是 PACKAGE 1 中的 MODULE 2,这又是我所期望的,但我也得到了错误

文件“D:/Docs/Programming/Python/parent_directory/OOP lab 3.py”,第 8 行,在 从 package1.module2 导入 module2 ImportError: 无法从 'package1.module2' 导入名称 'module2' (D:\Docs\Programming\Python\parent_directory\package1\module2.py)

如果模块 1 和 2 在同一个包中,我不明白为什么我会收到导入错误,如果我收到导入错误,如果我能够导入,为什么我会得到我期望的打印输出module2 让我感到困惑的是,使用时我对 module3 没有任何问题

from package1.package2.module3 import module3
module3()

感谢您的帮助

【问题讨论】:

  • 为什么文件module2中的名字module1不是那个错误吗?
  • 感谢@azro 刚刚发现
  • @azro 我在 Module2.py 中打错了我应该调用类 module2 而不是 module1,谢谢你发现它

标签: python import module package importerror


【解决方案1】:

我发现了这个问题,我在 Module2.py 中打错了

class module1:
    print("I am MODULE 2 in PACKAGE 1")

应该是的

class module2:
    print("I am MODULE 2 in PACKAGE 1")

【讨论】:

  • 不要回答错别字的答案,它们会被标记并关闭,谢谢
猜你喜欢
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2017-05-13
  • 2020-12-25
相关资源
最近更新 更多