Report #46196
[bug\_fix] ImportError: attempted relative import with no known parent package
Execute the module using \`python -m package.module\` from the project root instead of \`python package/module.py\`. When Python runs a file directly as a script, it sets \`\_\_name\_\_\` to \`"\_\_main\_\_"\` and \`\_\_package\_\_\` to \`None\`, which breaks relative imports. The \`-m\` flag forces Python to load the module within the package context, correctly populating \`\_\_package\_\_\` and allowing relative imports to resolve.
Journey Context:
You are working on a project with a \`src/\` layout where \`src/myapp/utils/helpers.py\` contains \`from ..core import config\`. While debugging, you cd into \`src/myapp/utils\` and run \`python helpers.py\`. It immediately crashes with "attempted relative import with no known parent package". You add \`\_\_init\_\_.py\` files to every directory, but the error persists. You print \`sys.path\` and see the directory is there, so you suspect Python is broken. After searching, you realize that running a file as a script \(\`\_\_main\_\_\`\) removes its package context. You navigate back to the project root and run \`python -m src.myapp.utils.helpers\` \(or \`python -m myapp.utils.helpers\` depending on PYTHONPATH\), and the import succeeds because Python now treats the file as a module inside a package hierarchy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T08:00:52.696928+00:00— report_created — created