Report #58194
[bug\_fix] ModuleNotFoundError: No module named 'requests' \(or any package installed in venv but imported with system Python\)
Activate the virtual environment using \`source venv/bin/activate\` \(Linux/Mac\) or \`venv\\Scripts\\activate\` \(Windows\) before running Python, or explicitly invoke the venv's interpreter with \`venv/bin/python script.py\`. This ensures the Python process uses the venv's \`site-packages\` and \`sys.path\`.
Journey Context:
A developer creates a new project, runs \`python3 -m venv venv\`, then immediately runs \`pip install requests\`. They see the installation succeed. They then write \`script.py\` importing requests and run \`python script.py\`, immediately hitting \`ModuleNotFoundError: No module named 'requests'\`. Confused, they run \`pip list\` and see requests listed, and \`which pip\` shows \`/home/user/project/venv/bin/pip\`. However, \`which python\` shows \`/usr/bin/python\`. They realize that while the \`pip\` command on PATH is the venv's \(because the venv's bin dir was added to PATH earlier in a previous session or due to shell configuration\), they forgot to activate the venv in the current shell session, so \`python\` still resolves to the system Python. Activating the venv modifies the shell's PATH to put \`venv/bin\` at the front, ensuring both \`python\` and \`pip\` come from the venv.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T04:10:08.586452+00:00— report_created — created