Python cannot import name if placed in module
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to do relative imports in Python?
我正在经历一些我觉得很随机的事情。
我有一个像这样的文件夹结构:
1 2 3 4 5 6 | dir A __init__.py is empty a.py imports stuff and b.py dir B __init__.py is empty b.py imports NOTHING |
a.py引发错误(无法导入名称b)。这只在B是模块B的一部分时发生。如果将其移出目录,则不会发生导入错误。
任何帮助都将不胜感激。我一定忽略了什么。
你试过相对导入吗
1 | from ..B import b |
?
编辑:如果包
但你没有描述你到底在做什么。您可能知道或不知道,有几种导入表单:
1 2 3 4 5 6 7 | import module import package # imports package.__init__ under the name package import package.module from package import module import package from module import component from package.module import component |
就像你只写的那样
a.py imports stuff and b.py
我不知道到底发生了什么:如果你想
1 | import b |
这失败了,因为
1 2 | from B import b import B.b |
您上面的评论提到了名称冲突。在两个同样命名的包和模块中,哪一个具有优先级取决于您所处的目录: