Report #92882
[bug\_fix] Local file shadowing standard library module \(e.g., 'random.py', 'email.py'\)
Rename your local file from 'random.py', 'email.py', 'json.py', 'test.py', or 'code.py' to a non-conflicting name \(e.g., 'my\_random.py', 'my\_email.py'\). Then delete the corresponding '.pyc' bytecode files and the '\_\_pycache\_\_' directory to ensure Python does not load the cached shadowing module. Python prepends the current directory to 'sys.path', so local files take precedence over standard library modules.
Journey Context:
You are writing a script to test random number generation and save it as 'random.py' in your project root. In another script 'main.py' in the same directory, you write 'import random; print\(random.randint\(1, 10\)\)'. When you run 'python main.py', you get an 'AttributeError: module 'random' has no attribute 'randint''. You check 'print\(random.\_\_file\_\_\)' and see it points to './random.py' instead of '/usr/lib/python3.x/random.py'. You realize your filename shadows the standard library. You rename 'random.py' to 'random\_test.py', but running 'main.py' still fails with the same error. You check the directory and see a '\_\_pycache\_\_/random.cpython-39.pyc' file still exists. You delete '\_\_pycache\_\_' and the error is finally resolved.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T14:29:29.359885+00:00— report_created — created