我有以下目录结构:
/ 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;
开头。
答案 0 :(得分:6)
没有错,它完全按照你所说的去做:
导入package.subpackage
时,您正在执行/package/subpackage/__init__.py
。你做from .. import file
。因此file
中的package.subpackage
为package.file
。
答案 1 :(得分:0)
因为它从file
导入..
,就像您的第一个代码段所示。