Python - 从子包导入文件

时间:2011-05-18 11:43:03

标签: python import

我有以下目录结构:

  • /
    • 包/
      • 子包/
        • __初始化__。PY
        • file.py
      • __初始化__。PY
      • file.py
    • main.py

/ package / subpackage / __ init __。py 有以下代码:

from .. import file;

按预期导入 /package/file.py

/main.py 包含以下代码:

from package import subpackage as foo;
from package.subpackage import file as bar;

最后一行导入 /package/file.py ,而不是 /package/subpackage/file.py bar .__ name __ 确认了这一点。为什么?怎么了?

Python 2.5.2。每个文件都有

from __future__ import absolute_import;

开头。

2 个答案:

答案 0 :(得分:6)

没有错,它完全按照你所说的去做:

导入package.subpackage时,您正在执行/package/subpackage/__init__.py。你做from .. import file。因此file中的package.subpackagepackage.file

答案 1 :(得分:0)

因为它从file导入..,就像您的第一个代码段所示。