如何从python的较低级目录中导入类?
我一直在阅读如何将__init__.py
添加到我的文件夹(或者这仅在python2中使用)或我应该如何使用from __future__.py import absolute_import
,但这些都不起作用。
使用下面的代码,我得到: ValueError:尝试相对顶级包进行相对导入
我也尝试过像from .folder2.file2 import Class2
那样导入,它给出了错误: ModuleNotFoundError:没有名为'__main __。folder2'的模块; “ __main__”不是软件包
main.py
from folder1.file1 import Class1
if __name__ == "__main__":
Class1()
file1.py
from ..folder2.file2 import Class2
class Class1:
def __init__(self):
print("Foo")
Class2()
file2.py
class Class2:
def __init__(self):
print("Bar")
谢谢。
答案 0 :(得分:0)
是的,您需要向Python需要浏览的所有文件夹中添加一个__init__.py
(无论您的python版本如何),即是否具有以下结构:
importing
- folder1
-- file1.py
- folder2
--file2.py
- main.py
您将希望它最终看起来像这样:
importing
- __init__.py
- folder1
-- __init__.py
-- file1.py
- folder2
-- __init__.py
--file2.py
- main.py
即您需要在__init__.py
,folder1
,和 folder2
importing