我正在经历一些对我来说非常随机的事情。
我有一个像这样的文件夹结构:
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的一部分时。 如果我将它移到目录之外,则不会发生导入错误。
任何帮助将不胜感激。我必须忽略一些事情。
答案 0 :(得分:4)
您是否尝试过relative import
from ..B import b
编辑:如果包B
所在的位置无关紧要,则不适用。
但是你没有描述你到底做了什么。您可能知道或不知道,有几种导入形式:
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导入东西和b.py
我不知道到底发生了什么:如果你试图
import b
失败,因为b
位于包B
中。
from B import b
import B.b
上面的评论提到了一个名字冲突。两个同名的软件包和模块中哪一个具有优先级取决于您所在的目录:'.'
通常位于sys.path
的开头,所以如果您直接位于utils
目录下,可能会有不同的经历。