将子类导入包中:ModuleNotFoundError

问题描述 投票:0回答:2

我期望./test.py会像./package/test.py一样顺利运行。但是我正在运行./test.py

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from package.subclass import Subclass
  File ".../package/subclass.py", line 1, in <module>
    from subclass import Subclass
ModuleNotFoundError: No module named 'subclass'

当读取子类的第一行时,它给出ModuleNotFoundError。我尝试使用./package/__init__.py,但错误甚至无法在第1行class1中找到__init__.py

文件目录如下:

./package/class1.py
./package/class2.py
./package/subclass.py
./package/test.py
./test.py

代码:

# ./package/class1.py
class Class1():
...

# ./package/class2.py
class Class2():
...


# ./package/subclass.py
from class2 import Class2
class Subclass(Class2):
...

# ./package/test.py
from package.class1 import Class1
from subclass import Subclass
...

# ./test.py
from package.class1 import Class1
from package.subclass import Subclass
...
python python-import subclass
2个回答
0
投票
尝试在目录中添加空的__init__.py

[C0告诉python解释器它正在处理的目录实际上是一个模块。

希望这会有所帮助!


0
投票
除了适当的__init__.py,您还需要使用:

__init__.py

注意添加的from package.class1 import Class1
from package.subclass import Subclass
。只是一个点也可以,因为这是相对重要的。 
© www.soinside.com 2019 - 2024. All rights reserved.