Python - 从子包中导入文件

3
我有以下目录结构:
  • /
    • package/
      • subpackage/
        • __init__.py
        • file.py
      • __init__.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个回答

6

没有问题,它恰好执行了您告诉它要做的事情:

当您导入package.subpackage时,您正在执行/package/subpackage/__init__.py。在那里,您执行from .. import file。因此,在package.subpackage中的filepackage.file


0

因为它从..导入file,就像您的第一个片段所说的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接