Complete Step-by-Step Guide to Fix chrome-error://chromewebdata/#
Step-by-step fixes for chrome-error://chromewebdata/# covering browsing, debugging, and embedded browsers with commands and config examples.
Feb 21, 2026
Step-by-step fixes for the error: externally-managed-environment pip issue—venv, pipx, apt, diagnostics, and safe overrides.
If you ran pip install and saw:
error: externally-managed-environment
× This environment is externally managed, and pip is being asked to do something that would modify it.
╰─> The project cannot be installed into this Python installation because the installation has been configured to disallow writes to site-packages.
This guide explains what the error means, helps you fix it safely (commands for Linux/macOS/Windows), diagnose the cause, and choose the right approach.
Use venv for project libraries, pipx for CLI tools, or the OS package manager for system packages. Only use --break-system-packages in disposable VMs/containers and with full awareness of the risks.
macOS: open Terminal (⌘ + Space → type Terminal).
Linux: open Terminal (Ctrl+Alt+T).
Windows: open PowerShell (Win → type PowerShell) or Command Prompt (cmd).
Copy one command, paste it into the terminal, press Enter. If something fails, copy the exact output and search or ask for help.

This message is the result of PEP 668: distributions may mark a Python installation as externally managed so tools like pip avoid installing packages into the interpreter’s global context by default. The intention is to prevent pip from overwriting or conflicting with distribution-managed packages. Use virtual environments or tools like pipx instead.
Many distributions (recent Ubuntu/Debian/Raspberry Pi OS releases and some Homebrew setups) adopted behaviors consistent with this PEP, which is why the error is more visible on modern systems.
Project libraries (your code needs it) → venv (virtual environment) — recommended.
Global CLI apps (ruff, semgrep, pycowsay, etc.) → pipx(isolated, exposes CLI) — install once, run globally.
System service / OS integration needed → apt / brew / dnf (distro package).
Disposable container / quick test → --break-system-packages (risky; containers only).
Run these commands to understand what environment you have and to pick the correct fix.
1. Which Python & pip are you using?
which python3
python3 -V
python3 -m pip --version
2. Does the interpreter have the EXTERNALLY-MANAGED marker?
python3 -c "import sysconfig, os; p=sysconfig.get_paths()['stdlib']; print('stdlib:', p); print('EXTERNALLY_MANAGED?', os.path.exists(os.path.join(p,'EXTERNALLY-MANAGED')))"
If the last line prints True, the interpreter is marked as externally managed (PEP 668). Prefer venv or pipx.
3. Quick interpretation guide (after running the checks):
Why: isolates project dependencies from system Python, reproducible and safe.
Linux/macOS:
# (Optional) on Debian/Ubuntu: ensure venv support
sudo apt update
sudo apt install -y python3-venv python3-distutils
# create project folder and venv
mkdir myproject
cd myproject
python3 -m venv .venv
# activate
source .venv/bin/activate
# upgrade pip & install packages (use python -m pip to be explicit)
python -m pip install --upgrade pip setuptools wheel
python -m pip install requests
# quick verify
python -c "import requests; print('OK')"
Windows (PowerShell):
# create and activate
python -m venv .venv
.\.venv\Scripts\Activate.ps1
# upgrade pip & install
python -m pip install --upgrade pip setuptools wheel
python -m pip install requests
python -c "import requests; print('OK')"
Notes
Use python -m pip to ensure pip runs for the selected Python.
Do not use sudo inside the venv. If files become root-owned: sudo chown -R $(whoami) .venv.
If No module named venv, install python3-venv
Note for Web Scraping Beginners
Many users meet the “externally-managed-environment” error while installing scraping libraries such as requests, beautifulsoup4, scrapy, or httpx. These libraries often run thousands of HTTP requests, and once your project works correctly in a virtual environment, you may also need to handle rate limits or IP blocks. That’s where rotating proxies become essential for stable scraping.
Why: installs CLI Python apps into isolated virtual environments and exposes their executables on your PATH — no system site-package changes.
Debian/Ubuntu
sudo apt install -y pipx
pipx ensurepath # restart shell if needed
pipx install semgrep
semgrep --version
macOS (Homebrew)
brew install pipx
pipx ensurepath
pipx install ruff
Alternative (user pip)
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Troubleshoot: If pipx command not found, ensure ~/.local/bin is on your PATH and restart the shell.
Why: distro-managed packages get security updates and are consistent with system tooling.
sudo apt update
sudo apt install python3-requests
Note: Distro package names differ from PyPI names (e.g., python3-requests vs requests). Use OS packages for system services, not development isolates.
If you must install into a system interpreter (only in throwaway VMs/containers or with a full recovery plan):
Temporary override
Why: distro-managed packages get security updates and are consistent with system tooling.
# or set env var for the session
PIP_BREAK_SYSTEM_PACKAGES=1 python -m pip install <package>
Warning: this may break distro package manager expectations. Use only in disposable containers or VMs.
Extremely risky: removing EXTERNALLY-MANAGED marker file — do not do on production machines.
sudo find / -name EXTERNALLY-MANAGED 2>/dev/null
# if you really know what you're doing, you might inspect the file, but do NOT remove unless you have a full recovery plan
Newer releases often mark Python as externally managed — prefer venv, pipx, or distro packages for system-level needs. Community Q&A threads and distro guidance explain this shift.
Homebrew Python may be marked externally managed. Use venv for projects and pipx for tools. You can search the Homebrew prefix for EXTERNALLY-MANAGED if troubleshooting.
If activation is blocked, you may need to enable local script execution for the current user:
# allow locally signed scripts for current user (use cautiously)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
# revert to stricter setting later if you want
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted
Security note: changing execution policy affects script execution on your account — understand the tradeoff.
Prefer Conda environments (conda create -n myenv python=3.x) — Conda’s environments avoid PEP 668 restrictions.
In containers you control you can use --break-system-packages safely, but best practice is to build dependencies into the image with a venv (or install with apt if provided).
Did you activate the venv? Look for (.venv) in the prompt.
Is your IDE pointing at the venv interpreter? Re-select it.
Are files owned by root? sudo chown -R $(whoami) .venv.
Is pipx on PATH? Add ~/.local/bin to PATH and restart shell.
Did the diagnostic show EXTERNALLY-MANAGED = True? Use venv/pipx or apt.
If you broke something with forced installs: sudo apt --fix-broken install and sudo apt reinstall python3 python3-pip may help restore distro packages.
Q: Is --user a safe workaround?
A: --user installs into a per-user site-packages and sometimes bypasses system checks, but it’s not reproducible like venv and can still be blocked by some distro configurations. Prefer venv.
Q: Can I remove the EXTERNALLY-MANAGED file?
A: You can, but doing so undermines the distro’s package management and risks breaking upgrades; don’t do this on production or daily-driver machines.
Q: Why did this start happening recently?
A: PEP 668 and its adoption by distributions made the behavior more visible on modern releases (Python 3.11 era onwards). The change is intended to protect system stability.
1. Default: create a venv for your projects.
2. CLI tools: use pipx (safer and cleaner).
3. System packages: use your OS package manager.
4. Overrides: --break-system-packages only in disposable VMs/containers.
5. When in doubt, reproduce the fix in a Docker container before touching your main system.
This error is frustrating, but it exists to protect your system. The simplest long-term habit is: create a venv for projects and use pipx for CLI tools. These patterns avoid conflicts, improve reproducibility, and make deployments safer. If you must override protections, do so only in disposable VMs or containers and always have a recovery plan. Try the diagnostic checks first, pick the matched fix, and if you still get stuck, copy the exact command output and ask — that makes debugging much faster.
< Previous
Next >
Cancel anytime
No credit card required