【发布时间】: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