Report #77846
[bug\_fix] error: externally-managed-environment \\n× This environment is externally managed
Create and activate a virtual environment \(\`python3 -m venv .venv && source .venv/bin/activate\`\) and run \`pip install\` inside it instead of using \`--break-system-packages\`. Root cause: Modern Linux distributions \(Debian 12\+, Ubuntu 23.04\+, Fedora\) mark the system Python as externally managed per PEP 668 to prevent package managers \(apt/dnf\) from conflicting with pip. The fix isolates project dependencies from the system Python, respecting the distro's ownership of the system environment while allowing pip installs in the venv.
Journey Context:
You’re on a fresh Ubuntu 23.04 laptop and open a terminal to quickly test an API. You run \`pip install requests\` and immediately hit a red error: "externally-managed-environment". You check \`pip --version\` and it’s the system pip. You try \`sudo pip install\` but get the same error. You Google and find PEP 668. You try the dangerous flag \`--break-system-packages\` and it works, but you feel uneasy. You realize the root cause: Ubuntu now protects system Python to prevent \`apt\` conflicts. You understand that the proper fix is to create a venv: \`python3 -m venv .venv && source .venv/bin/activate && pip install requests\`. This works because the venv is not "externally managed"—it’s your own isolated environment where pip has full control.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:15:45.978261+00:00— report_created — created