【发布时间】:2011-05-09 16:47:11
【问题描述】:
大家好——我正在使用 Python 中的相对导入来拉扯我的头发。我已经在 SO 和其他论坛上阅读了 30 次文档和大量帖子 - 似乎仍然不起作用。
我的目录结构目前是这样的
src/
__init__.py
main.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py
我希望 expander.py 和 language_id.py 能够访问功能模块。我运行 python main.py,它可以通过 from components.expander import * 和 components.language_id import * 很好地访问模块。
但是,expander 和 language_id 里面的代码来访问功能模块:
from ..utilities.functions import *
我收到此错误:
ValueError: Attempted relative import beyond toplevel package
我已经检查了很多次,它似乎遵循文档。有人知道这里出了什么问题吗?
【问题讨论】:
-
您已经找到了解决方案,但要解释为什么需要它:包应该是完全独立的。当您在其中运行 main.py 时,它不会将 src/ 视为一个包。