Attempted relative import with no known parent package

from ..box_utils import decode, nms

This line is giving error

ImportError: attempted relative import with no known parent package

What is this error and how to resolve this error?

194379 次浏览

显然,box_utils.py不是一个包裹的一部分。您仍然可以导入在这个文件中定义的函数,但是只有当尝试导入这些函数的 python 脚本与 box_utils.py位于同一目录时,才可以这样做,请参见 这个答案

注意: 在我的例子中,我偶然发现了一个带有一个句点的 import 语句的错误,如下所示: from .foo import foo.然而,这种语法告诉 Python,foo.py是包的一部分,事实并非如此。删除句点时,错误消失了。

如果一个不同的字典包含 script.py,它可以从根访问。例如:

如果你的程序是结构化的..:

/alpha
/beta
/delta
/gamma
/epsilon
script.py
/zeta

... 那么 epsilon目录中的脚本可以通过以下方式调用:

from alpha.gamma.epsilon import script

package
|--__init__.py
|--foo.py
|--bar.py

bar.py的内容

from .foo import func
...

如果有人得到完全相同的错误为 from .foo import func

这是因为您忘记将它作为一个包,所以您只需要在 package目录中创建 __init__.py

在最新的 python 版本中,导入它,不要直接使用. . 和. library 导入您想要的文件。这种技术将在子目录中工作。 如果从父目录导入,则放置目录的完整路径。