Report #103744
[bug\_fix] Importing the wrong module because a local file shadows the standard library or an installed package
Rename any local file or directory that collides with a stdlib or dependency name \(e.g. \`json.py\`, \`random.py\`, \`test.py\`, \`socket.py\`\). Avoid running scripts from inside a package directory, and inspect \`sys.path\` with \`python -c "import sys; print\(sys.path\)"\` if PYTHONPATH is involved.
Journey Context:
You create \`json.py\` in your project root to experiment with JSON handling, then try \`import json\` elsewhere and get AttributeError or unexpected behaviour. You check \`json.\_\_file\_\_\` and discover Python imported your local file instead of the standard library. The same happens with directories named \`test\`, \`email\`, or \`site\`. The reason is that \`sys.path\[0\]\` is the directory containing the running script, so local names take precedence over installed packages. The rabbit hole continues when you delete the file but a \`\_\_pycache\_\_/json.cpython-310.pyc\` remains and still shadows the stdlib. The fix is to rename the offending module and purge \`\_\_pycache\_\_\`, because naming collisions are resolved by import path order and local files always win.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:37:44.185254+00:00— report_created — created