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?
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?
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.
__init.py__
in the same directory –
Burlburlap from .foo import foo
–
Nawab 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
gamma/epsilon.py
from delta
with a relative reference (ie, not referring to alpha
) –
Bruno pip install -e .
. I have not tried when two packages are in that directory, but at least if there is only one package in the directory and you do that, you can in another Python file type import beta
or import beta.delta
–
Avenge delta
called script.py
(alpha > beta > delta > script.py) and want to call the epsilon
module (alpha > gamma > epsilon.py), you can import it using from ...gamma import epsilon
. NOTE that if you want to run this as a script, python -m alpha/beta/delta/script.py
will NOT work! You need to call it using python -m alpha.beta.delta.script
instead. –
Substructure 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.
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.
package
directory –
Lansquenet __init__.py
–
Elasticity __init__.py
file makes no difference (I think it's no longer required as of Python 3.3). This isn't working for me either (with or without __init__.py
), and I've got no idea why. –
Eugeniusz © 2022 - 2024 — McMap. All rights reserved.