0

我在导入子包时遇到问题。我拥有的包结构是:

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

4

1 回答 1

1
import project.helpers

project.helpers.somefunction()
于 2013-10-15T18:30:07.680 回答