1
所以我試圖從導入其子包的包中導入一個模塊。下面是示例代碼:Python3如何導入導入子目錄文件的子目錄文件?
main_directory
- main.py
subdirectory
- __init__.py
- test.py
subsubdirectory
- __init__.py
- test2.py
main.py:
from subdirectory import test
test.foo1()
test.py:
from subsubdirectory import test2
def foo1():
print("foo1")
test2.foo2()
test2.py:
def foo2():
print("foo2")
在這種情況下
,如果我改變
from subsubdirectory import test2
到
from .subsubdirectory import test2
它的作品,因爲我想這是直接的路徑? 但是當我移動到我的子目錄和運行python3 test.py將拋出錯誤:
ModuleNotFoundError: No module named '__main__.subsubdirectory'; '__main__' is not a package
你能解釋發生了什麼?
請參閱[在非包中嘗試相對導入'儘管在一個目錄中包含__init__.py的包](http://stackoverflow.com/questions/14664313/attempte d-相對導入功能於非封裝雖然-包與 - INIT-PY-中) –