我有一个python包,它被截短如下:
<main package>
|-> __init__.py
<sub package1>
|-> __init__.py
|-> admin.py
|-> <other python files>
<sub package 2>
|-> __init__.py
|-> <other python files>
在主包init.py中,我执行了以下操作:
import subpackage1
import subpackage2
__version__ = "1.2.1a"
当我使用这个包时,我遇到了导入问题
from mainpackage import subpackage1 # works
admin = subpackage1.admin #fails
from mainpackage.subpackage1 import admin # works
我是否可以直接从子包1调用管理模块?我有什么遗漏吗?
谢谢
最佳答案
尝试在import admin
的__init__.py
中添加subpackage1
。
之后,以下代码应该可以工作:
/main/subpackage1/__init__.py
import admin
/main/subpackage1/admin.py
def PrintAdmin():
print 'Admin'
/some_other_module.py:
from main import subpackage1
admin = subpackage1.admin
#Invoke some function from admin.py
admin.PrintAdmin() #RESULT: Admin