目錄結構:導入父模塊包
[app]
start.py
import package1
[package1]
__init__.py
print('Init package1')
import module1
import subpackage1
module1.py
print('package1.module1')
import package1 # this works OK
[subpackage1]
__init__.py
print('Init package1.subpackage1')
import module1
module1.py
print('Init package1.subpackage1.module1')
#from package1 import subpackage1 # ImportError: cannot import name subpackage1
#from .. import subpackage1 # ImportError: cannot import name subpackage1
#import . as subpackage1 # SyntaxError: invalid syntax
import package1.subpackage1 as subpackage1 # AttributeError: 'module' object has no attribute 'subpackage1'
爲了避免subpackage1.module1
我想導入模塊subpackage1
爲了參考其他模塊從subpackage1
在形式subpackage.module2
引起圓形進口問題。因爲如果我做from . import module2
module2
的引用可能還不存在subpackage1
當我嘗試此導入。
我已經嘗試了4種不同的方法 - 它們都沒有工作 - 請參閱代碼中的註釋。
任何幫助?
前段時間subpackage1
是頂層包,它的工作(見它是如何工作在package1.module1
源現在,當我把它降一個級別 - 我有這個問題......我知道,我可以補充包1 DIR到sys.path
,但是這是醜陋的。
你正在嘗試創建一個循環導入本身。 –