尝试在没有已知父包的情况下进行相对导入

Attempted relative import with no known parent package

from ..box_utils import decode, nms

这一行给出了错误

ImportError: attempted relative import with no known parent package

这是什么错误以及如何解决这个错误?

显然,box_utils.py 不是包的一部分。您仍然可以导入此文件中定义的函数,但前提是尝试导入这些函数的 python 脚本与 box_utils.py 位于同一目录中,请参阅 this answer.

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

如果不同的词典包含 script.py,则可以从根目录访问它。例如:

如果你的程序是结构化的...:[=​​14=]

/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