简体   繁体   English

导入类时出现导入错误

[英]ImportError when Importing Classes

I have a question about an issue with importing modules/packages that I cant seem to wrap my head around if anyone could clear up my confusion.我有一个关于导入模块/包的问题,​​如果有人能解决我的困惑,我似乎无法解决这个问题。 I have a main folder called parent_directory Inside this I have two packages, package1 contains the modules, module1, module2 and a folder called package2, the subfolder package2 contains the module, module3我有一个名为 parent_directory 的主文件夹 在这个文件夹中我有两个包,package1 包含模块 module1、module2 和一个名为 package2 的文件夹,子文件夹 package2 包含模块 module3

封装、模块结构

module1.py contains module1.py 包含

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

module2.py contains module2.py 包含

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

module3.py contains module3.py 包含

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

When I open OOP lab3.py and use the following当我打开 OOP lab3.py 并使用以下内容时

from package1.module1 import module1
module1()

The printout is, I am MODULE 1 in PACKAGE 1 which is what I expect, however, if I change this to打印输出是,我是 PACKAGE 1 中的 MODULE 1,这是我所期望的,但是,如果我将其更改为

from package1.module2 import module2
module2()

The printout is, I am MODULE 2 in PACKAGE 1 which again is what I expect, but I also get the error打印输出是,我是 PACKAGE 1 中的 MODULE 2,这又是我所期望的,但我也收到了错误

File "D:/Docs/Programming/Python/parent_directory/OOP lab 3.py", line 8, in from package1.module2 import module2 ImportError: cannot import name 'module2' from 'package1.module2' (D:\\Docs\\Programming\\Python\\parent_directory\\package1\\module2.py)文件“D:/Docs/Programming/Python/parent_directory/OOP lab 3.py”,第 8 行,在 from package1.module2 import module2 ImportError: cannot import name 'module2' from 'package1.module2' (D:\\Docs\\编程\\Python\\parent_directory\\package1\\module2.py)

If module 1 & 2 are in the same package I dont understand why I am getting the import error and if I'm getting the import error why am I getting the print out with what I would expect had I been able to import module2 what is adding to my confusion is that I have no issue with module3 when using如果模块 1 和 2 在同一个包中,我不明白为什么我会收到导入错误,如果我收到导入错误,为什么我会以我所期望的方式打印出来,如果我能够导入 module2 是什么更让我困惑的是,我在使用 module3 时没有问题

from package1.package2.module3 import module3
module3()

Thanks for any assistance感谢您的帮助

I spotted the issue, I made a typo in Module2.py as我发现了这个问题,我在 Module2.py 中输入了一个错字

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

it should have been应该是

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM