Python - 从子包导入文件

izs*_*tas 3 python import

我有以下目录结构:

  • /
    • 包/
      • 分装/
        • __init__.py
        • file.py
      • __init__.py
      • file.py
    • main.py

/package/subpackage/__init__.py有以下代码:

from .. import file;
Run Code Online (Sandbox Code Playgroud)

它按预期导入/package/file.py.

/main.py有以下代码:

from package import subpackage as foo;
from package.subpackage import file as bar;
Run Code Online (Sandbox Code Playgroud)

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

Python 2.5.2.每个文件都有

from __future__ import absolute_import;
Run Code Online (Sandbox Code Playgroud)

开始时.

var*_*tec 6

没有什么是错的,它完全按照你的说法去做:

导入时package.subpackage,您正在执行/package/subpackage/__init__.py.你做到了from .. import file.所以,filepackage.subpackagepackage.file.