【发布时间】:2011-01-21 13:08:14
【问题描述】:
我对一个本应非常简单的问题束手无策。这是我为解决我的问题而编写的一个简单示例的格式。我在 __init__.py 中有一个带有 __all__ = ["p1","p2"] 的文件夹顶部。然后,我在两个子文件夹 p1 和 p2 中都有__init__.py,__all__ 再次定义了两个简单模块 quick1 和 quick 2 的名称,其中 quick1 在 p1 中,quick2 在 p2 中。如果我从 top 之外的脚本导入 top.p1.quick1 则导入工作正常。但是,尝试从 quick2 导入 top.p1.quick1 会出现错误
File "quick1.py", line 1, in <module>
import top.p2.quick2
ImportError: No module named top.p2.quick2
如何从另一个子包中导入模块?据我所知,这应该根据 python 文档工作。有没有人看到我犯了一个明显的、微不足道的错误?
编辑:看来我需要将带有顶部的目录添加到我的搜索路径中。我可以通过设置 PYTHONPATH 临时做到这一点。但是,有没有更好的方法可以从 distutils 脚本中执行此操作?
【问题讨论】: