我是个新手,所以对我宽容一点:
我一直试图把我正在进行的一个python项目分成更小的部分。为此,我在VSCode中的一个文件夹中创建了4个类,其中一个是导入其他3个并访问它们的方法等的主类。
结构如下:
top_level_folder
|--lower_level_folder
|--class1.py
|--class2.py
|--class3.py
|--mainclass.py
现在我的主类应该通过导入其他3个类
from top_level_folder.lower_level_folder import class1
etc.
然而,通过这种方式,我得到了一个ModuleNotFound错误(没有名为top_level_folder的模块(
import class1
etc
导致TypeError和
import top_level_folder.lower_level_folder.class1 as x
也不起作用
有什么明显的东西我遗漏了吗?是因为我安装了VSC吗?
这取决于情况。如果您将mainclass.py作为可执行脚本运行,则导入应该如下所示mainclass.py
from class1 import MyClass
但是,如果您计划从文件夹外导入模块,则需要一个__init__.py
文件,或者指定文件夹名称。I.e你的文件结构看起来像这个
top_level_folder
|--lower_level_folder
|--__init__.py
|--class1.py
|--class2.py
|--class3.py
|--mainclass.py
|--main.py
你想要这样进口main.py
from mainclass import MyClass
mainclass.py
from lower_level_folder.class1 import MyClass2
__init__.py
from lower_level_folder.mainclass import MyClass