【发布时间】:2018-01-08 22:22:16
【问题描述】:
我似乎无法让绝对导入在 python 中工作。这是我的文件结构:
a/
b/
__init__.py
__init__.py
foo.py
foo.py:
# Including or removing the __future__ import has no effect
from __future__ import absolute_import
from a import b # just `import b` works fine
print "success!"
我反而得到:
ImportError: No module named a
这里到底发生了什么?我觉得我缺少一些基本的东西。虽然这个例子很简单,但我需要绝对导入才能为实际项目工作,因此仅用相对导入替换导入不是一种选择。我正在使用 python 2.7.13
没有列出here帮助的解决方案
提前感谢您的任何见解!
【问题讨论】:
-
foo.py是否在a目录中?您在图表中将其显示为外部。 -
我的错,谢谢你的收获
-
听起来你犯了一个常见的错误,即直接运行包的子模块而不是作为子模块。这里有一个骗子——真的有很多骗子,但我认为至少有一个好人。
-
你能详细说明一下吗?我仍然对问题所在感到有些困惑。
-
我不确定,但也许@user2357112 说你应该写下
import a.b,因为b是a的子模块
标签: python python-2.7 python-import importerror