pip安装包externally-managed-environment错误
操作系统 Ubuntu 24.04,Python 版本 3.12.3,pip版本:
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
使用pip安装包提示如下错误:
~$ pip install request
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
出现这个错误是因为从 Python 3.11 开始引入了 PEP 668 规范,限制了在系统级 Python 环境中使用 pip 安装第三方包,避免与系统包产生冲突。
使用虚拟环境
官方推荐使用虚拟环境:
# 安装 venv
sudo apt install python3-venv
# 进入项目目录,创建虚拟环境
cd your-project
python3 -m venv .venv
source .venv/bin/activate
# pip 安装包
pip install 包名
安装的包只会存在于当前项目,删除项目就可以将包一并删除。使用虚拟环境更安全,也可保持系统更干净。但每个项目都要创建一遍虚拟环境,常用包也要重新安装,比较麻烦。
折中的方法是,在用户目录创建虚拟环境,并配置开机自动激活:
# 进入用户主目录
cd ~
# 创建虚拟环境
python3 -m venv ~/.venv
# 编辑.bashrc
nano ~/.bashrc
# 添加如下内容
source ~/.venv/bin/activate
# 立即生效
source ~/.bashrc
重启Shell终端会看到如下提示符:
(.venv) user@user-pc ~ $
全局安装包
如果想要全局安装包,使用:
sudo apt install python3-包名
以上方式有些包找不到。
还可以使用pipx来安装:
sudo apt install pipx
pipx install 工具名
以下是不推荐的方式,可能存在破坏系统依赖、安全等问题。
跳过系统限制强制安装:
pip install 包名 --break-system-packages
永久解除限制:
sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.bak

