Report #77367
[bug\_fix] ModuleNotFoundError: No module named 'requests' despite 'pip install requests' appearing to succeed
Use 'python -m pip install requests' instead of bare 'pip' to guarantee the same interpreter installs and runs the package; verify alignment with 'which pip' vs 'which python' \(Linux/macOS\) or 'Get-Command' \(PowerShell\).
Journey Context:
A developer creates a venv with 'python -m venv venv', activates it with 'source venv/bin/activate', then runs 'pip install requests'. The command succeeds and 'pip list' shows requests. However, running 'python script.py' raises 'ModuleNotFoundError: No module named requests'. The developer checks 'which pip' and sees '/usr/bin/pip' \(system pip\), while 'which python' shows '/home/user/proj/venv/bin/python'. The activation script failed to prepend the venv's bin directory to PATH, or the developer ran 'pip' in a fresh shell without re-activating the venv. Consequently, 'pip' installed the package into the system Python's site-packages, but 'python' executed the venv's interpreter which lacks the package. Using 'python -m pip' ensures the pip module from the same interpreter's standard library is executed, guaranteeing installation into that interpreter's site-packages.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T12:27:23.395179+00:00— report_created — created