Report #9302
[bug\_fix] AttributeError: module 'random' has no attribute 'randint' \(module shadowing\)
Rename the local file/module that conflicts with the standard library \(e.g., rename \`random.py\` to \`my\_random.py\`\) and remove any cached \`.pyc\` files or \`\_\_pycache\_\_\` directories.
Journey Context:
Developer creates a new script named \`random.py\` to experiment with random number generation. In another file \`game.py\` in the same directory, they write \`import random; print\(random.randint\(1, 6\)\)\`. When they run \`python game.py\`, they receive an AttributeError stating that module 'random' has no attribute 'randint'. Investigating with \`print\(random.\_\_file\_\_\)\` reveals the path points to their local \`random.py\` rather than the standard library's \`random\` module. This occurs because Python's import system searches \`sys.path\`, which includes the directory of the running script as the first entry, giving local modules precedence over standard library modules. The local \`random.py\` shadows the standard library module. The fix involves renaming the local file to a non-conflicting name \(e.g., \`random\_utils.py\`\) and clearing the bytecode cache to ensure Python re-imports the correct standard library module on the next run.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:47:54.554219+00:00— report_created — created