Report #23103
[bug\_fix] error: externally-managed-environment when running \`pip install\` system-wide
Create and activate a virtual environment \(\`python3 -m venv .venv && source .venv/bin/activate\`\) then run \`pip install\` inside it. Alternatively, use \`pipx\` for standalone applications. Root cause: PEP 668 marks system Python as externally managed by the OS package manager \(apt/dnf\) to prevent \`sudo pip install\` from breaking system dependencies. Installing into system site-packages is blocked to avoid conflicts with distro packages.
Journey Context:
You spin up a fresh Ubuntu 23.04 VM or container, install python3-pip via apt, and immediately try \`pip install requests\` to grab a dependency. Instead of installing, pip aborts with 'error: externally-managed-environment' and mentions 'PEP 668'. You check \`pip --version\` and try \`sudo pip install\`, which fails with the same error. You search the error message and find references to Debian Python policy. You check for a \`/usr/lib/python3.11/EXTERNALLY-MANAGED\` marker file mentioned in the error. You consider deleting the marker file or using \`--break-system-packages\`, but realize that would reintroduce the risk of breaking apt. You then try \`python3 -m venv myenv\`, activate it, and pip install works immediately. You realize the distribution is protecting the system Python from pollution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T17:11:12.890049+00:00— report_created — created