尝试相对导入,但没有已知的父程序包

时间:2019-03-10 06:11:27

标签: python-3.x decode nms

from ..box_utils import decode, nms

此行显示错误

  

ImportError:尝试了相对导入,没有已知的父包

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

3 个答案:

答案 0 :(得分:3)

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

如果您的程序是结构化的:

alpha
  > beta
    > delta
  > gamma
    > epsilon
    > zeta

其中alphabetagammadeltaepsilonzeta是不同的目录。 epsilon目录中的脚本可以通过以下方式调用:

from alpha.gamma.eplsilon import script

答案 1 :(得分:1)

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

Nota bene:就我而言,我偶然发现了一个带有一个句点的import语句的错误,如下所示: from .generate_holidays import generate_holidays。但是,这种语法告诉Python generate_holidays.py是包的一部分,事实并非如此。删除句号后,错误消失了。

答案 2 :(得分:0)

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

bar.py

的内容
from .foo import func
...

如果有人遇到与from .foo import func完全相同的错误。

这是因为您忘记了将其打包。因此,您只需要在__init__.py目录中创建package