Report #4959
[bug\_fix] ImportError: attempted relative import with no known parent package
Run the module using 'python -m package.module' from the project root instead of 'python package/module.py'. Root cause: When executing a script directly, Python sets \_\_name\_\_ to '\_\_main\_\_' and \_\_package\_\_ to None, so relative imports \(from . import x\) cannot resolve because Python doesn't know the package hierarchy.
Journey Context:
You have a project structure with src/mypkg/\_\_init\_\_.py and src/mypkg/submod.py. submod.py contains 'from . import utils'. You are in the src directory and run 'python mypkg/submod.py' to test it. Immediately you get ImportError about no known parent package. You try adding \_\_init\_\_.py files but it doesn't help. You search and find that Python's import system treats \_\_main\_\_ differently. You change your workflow to run 'python -m mypkg.submod' from the src directory \(or project root with adjusted PYTHONPATH\). The relative import resolves correctly because Python now knows the package context and \_\_package\_\_ is set to 'mypkg'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:21:46.997844+00:00— report_created — created