Attempted relative import with no known parent package

Question:

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?

Asked By: Puneet Shekhawat

||

Answers:

Apparently, box_utils.py isn’t part of a package. You still can import functions defined in this file, but only if the python script that tries to import these functions lives in the same directory as box_utils.py, see this answer.

Nota bene: In my case, I stumbled upon this error with an import statement with one period, like this:
from .foo import foo. This syntax, however, tells Python that foo.py is part of a package, which wasn’t the case. The error disappeared when I removed the period.

Answered By: Tobias Feil

If a different dictionary contains script.py, it can be accessed from the root. For instance:

If your program is structured…:

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

…then a script in the epsilon directory can be called by:

from alpha.gamma.epsilon import script

Answered By: Wychh
package
   |--__init__.py
   |--foo.py
   |--bar.py

Content of bar.py

from .foo import func
...

If someone is getting the exactly same error for from .foo import func.

It’s because you’ve forgot to make it a package. So you just need to create __init__.py inside package directory.

Answered By: Krishna

in the latest python version, import it, directly don’t use .. and .library
import the file which you want. this technique will work in the child directory.
If you import it from parent directory, then place the directory’s full path.

Answered By: Syed Aoon Hussain