我有以下三个层次的文件夹 struct :folder1包含folder1_1,它也包含folder1_1_1.现在我们有一个.每个文件夹中的py文件(除了显然需要的'init.py',很抱歉,我不知道如何将这两行放在前后).
folder1
L __init__.py
L file1.py
L folder1_1
L __init__.py
L 文件1_1.py
L folder1_1_1
L __init__.py
L 文件1_1_1.py
文件内容
from folder1_1.file1_1 import Test1_1 as lvl2
class Test1:
randomnumber = 1
sum = randomnumber + lvl2.sum
print (sum)
文件1_1.py
from folder1_1_1.file1_1_1 import Test1_1_1 as lvl3
class Test1_1:
somenumber = 1
sum = somenumber + lvl3.someothernumber
print (sum)
文件1_1_1.py
class Test1_1_1:
someothernumber = 1
So each file imports from the directly lower folder. One step works: When I run 文件1_1.py the import from file1_1_1 works fine, and it produces the desired result (2)
但file1中的"2级"导入失败:
File "c:\Users\DSCO\Documents\folder1\folder1_1\文件1_1.py", line 1, in <module>
from folder1_1_1.file1_1_1 import Test1_1_1 as lvl3
ModuleNotFoundError: No module named 'folder1_1_1'
我怎样才能以这种方式导入?或者我需要重新排列我的文件夹吗?在实际的代码中,这个 struct 涉及到file1_1,它有许多指向file1_1_1的导入语句,而file1_1实际上是许多文件.这就是为什么要使用单独的子文件夹(folder1_1_1)