【发布时间】:2017-03-22 10:53:49
【问题描述】:
proj1
|__ py1.py
|__ py2.py
pkg
|__ __init__.py
|__ comm_f1.py
|__mod1
| |__ __init__.py
| |__ f1.py
| |__ f2.py
|__mod2
| |__ __init__.py
| |__ f3.py
| |__ f4.py
我知道有一些类似的问题,但我的问题似乎有点不同。 我有上面的项目和包目录。 'pkg' 目录包含一些我将用于我的项目'proj1' 或'proj2' 等的基本函数和类,因此我不想将'pkg' 保留在'proj1' 下。我用VS2015调试了'proj1',告诉它引用'pkg'目录,它工作得很好。但是现在我创建了 comm_f1.py,它有一些我相信可以被不同的子模块使用的通用函数/类,例如“mod1”和“mod2”等。例如,在 f3.py 中我想从 comm_f1 导入我的类通过使用:
from ..comm_f1 import myclass
它给了我一条错误消息“尝试相对导入超出顶级包” 我怎样才能优雅地解决这个问题?而且我不想涉及“pkg”的名称(或带有“pkg”的绝对目录路径名),因为我可能会更改“pkg”的名称,我想因为 comm_f1.py 仅在 f3.py 的父级目录,它不需要触摸它的祖父母'pkg'
【问题讨论】:
标签: python