我在导入子包时遇到问题。我拥有的包结构是:
project/
__init__.py
defaults.py
helpers/
__init__.py
misc.py
我需要使用来自defaults.py
整个项目的数据,包括helpers\misc.py
,而在defaults.py
我需要使用来自helpers\misc.py
. 为了解决循环引用,我试图从项目根目录中引用所有内容,即在defaults.py
我内部
import project
project.helpers.somefunction()
但是,这不起作用。但是当我直接导入函数时它确实有效,如下所示:
from project.helpers import somefunction
somefunction()
但后来我有一个循环引用问题。我在项目子包中到处都有同样的问题,但在其他地方我可以直接导入子包并解决这个问题。
那么,为什么如果我从子包中导入它会起作用,但是当我从根包开始引用相同的子包时却不起作用?
PS:没有helpers.py
与它相同级别helpers\
或内部的文件。
PPS:整个项目包sys.path
通过添加sys.path.insert(0, '<project_abs_path>')
PPPS:Python 2.7.3,Ubuntu 12.04