./package/test.py
工作顺利。我希望./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'
可以导入class1
。当它读取子类的第一行时,它会给出ModuleNotFoundError。我尝试过./package/__init__.py
,一个空的会出现与上面相同的错误。当我在./package/__init__.py
中有正确的导入时,错误甚至无法在__init__.py
的第1行中找到class1
。
文件目录如下:
./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 class1 import Class1
from subclass import Subclass
...
# ./test.py
from package.class1 import Class1
from package.subclass import Subclass
...
设置PYTHONPATH可能是一个选项。或者,考虑到您当前的结构:
#subclass.py
from .class2 import Class2
class Subclass(Class2):
pass
#package/test.py
from .class1 import Class1
from .subclass import Subclass
#test.py
from package.class1 import Class1
from package.subclass import Subclass
要运行test.py
,只需运行python test.py
或python -m test
要运行package/test.py
,您必须使用python -m package.test
尝试向目录添加一个空的__init__.py
__init__.py
告诉python解释器它正在处理的目录实际上是一个模块。
希望这能有所帮助!
除了正确的__init__.py
,您还需要使用:
from package.class1 import Class1
from package.subclass import Subclass
注意添加的package.
。只要一个点也可以,因为这将是一个相对的重要性。