从包__init__导入

时间:2010-12-22 18:40:17

标签: python

我遇到问题我无法修复,虽然我几乎尝试了所有我知道的或者可以在其他地方阅读的内容。

我得到了一个包含这种结构的包:

package/
__init__.py
    file.py
    file2.py
    file3.py
    subpackage/
        __init__.py
        submodule1.py
        submodule2.py

假设我在包/ init .py中声明了变量'db',我想将db导入file.py,我会这样做:

file1.py:

从包导入db

2 个答案:

答案 0 :(得分:0)

尝试from project_top.project import db或者更好地删除目录__init__.py中的project_top,因为这看起来不像是一个包。

答案 1 :(得分:0)

一般情况下,你不应该在你的__init__.py文件中添加任何内容,除非是对于不依赖于其他任何导入的常量,因为 - 正如你所发现的那样 - __init__.py中需要导入的任何内容从树的更深层次开始的事情会导致导入循环,当更深层次的它们自己尝试执行跨越仍在构造中的__init__.py空间的导入时。