When you use pip to install Python packages, you may encounter an ‘externally-managed-environment’ error. This error occurs because your Python environment is “externally managed” by a package manager, which prevents direct use of pip for system-wide installations to avoid conflicts or issues.
Error: Externally-Managed-Environment Solved
Error: externally-managed-environment
occurs when a package manager is managing a Python environment, which prevents direct use of pip. It can be solved using a virtual environment:
python3 -m venv ~/py_envs
source ~/py_envs/bin/activate
python3 -m pip install xyz
I encountered this issue when I upgraded my Python version from 3.10 to 3.12.
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
xyz, where xyz is the package you are trying to
install.
If you wish to install a Python library that isn't in Homebrew,
use a virtual environment:
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install xyz
If you wish to install a Python application that isn't in Homebrew,
it may be easiest to use 'pipx install xyz', which will manage a
virtual environment for you. You can install pipx with
brew install pipx
...
2 Ways to Solve Error: Externally-Managed-Environment
1. Use a Virtual Environment
One way to solve error: externally-managed-environment
is to create a virtual environment folder in your root path. By creating and using a virtual environment, you bypass the system Python entirely, allowing you to install and manage packages freely without impacting the system-wide Python installation.
python3 -m venv ~/py_envs
source ~/py_envs/bin/activate
python3 -m pip install xyz
2. Force Install
The second option is to do a force install. Using --break-system-packages
bypasses this protection, allowing you to install the package directly into the system-wide Python environment.
To do so, add --break-system-packages
at the end of pip
, for example:
pip install xyz --break-system-packages.
Frequently Asked Questions
What is an externally-managed-environment error in Python?
The error: externally-managed environment
is thrown in Python when a package manager is managing a Python environment, preventing pip from conducting system-wide installations or use.
How do you fix an externally-managed-environment error in pip?
The externally managed environment error in pip can be solved two ways. The first option is to use a virtual environment:
python3 -m venv ~/py_envs
source ~/py_envs/bin/activate
python3 -m pip install xyz
The second option is to force install using break-system-packages:
pip install xyz --break-system-packages.