Report #59541
[bug\_fix] ModuleNotFoundError: No module named 'requests' \(or any package\) despite being installed in venv, or command not found: pytest after pip install
Activate the virtual environment using \`source venv/bin/activate\` \(Linux/Mac\) or \`venv\\Scripts\\activate\` \(Windows\), or explicitly invoke the venv's python with \`venv/bin/python -m pip install\` and \`venv/bin/python -m pytest\`. The root cause is that without activation, the shell's PATH resolves \`python\`, \`pip\`, and installed console scripts to the system Python installation or user site-packages, rather than the venv's isolated site-packages.
Journey Context:
You clone a repository and create a venv with \`python3 -m venv venv\`. You immediately run \`pip install -r requirements.txt\` and see the packages installing to \`venv/lib/...\`. You then run \`python main.py\` and get \`ModuleNotFoundError: No module named 'flask'\`. You check \`which python\` and see \`/usr/bin/python\` instead of \`venv/bin/python\`. You realize you never activated the venv, so \`python\` still points to the system interpreter which doesn't have flask installed. You activate with \`source venv/bin/activate\`, but then you try to run \`pytest\` and get \`command not found\`. You realize \`pytest\` was installed in \`venv/bin\` which isn't in your PATH until activation. Once activated, \`pytest\` resolves correctly to \`venv/bin/pytest\`.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:25:41.852489+00:00— report_created — created