背景
在Ubuntu23.04 之后的系统中,使用pip/pip3 install 安装库时,会收到一个错误提示:error: externally-managed-environment,即“外部管理环境错误”,这是新版python的feature,此功能的目的是避免操作 系统包管理器(pacman,yum,apt)和pip等特定python的包管理工具之间的冲突。
官方介绍PEP 668 – Python base environments
解决方案
方案一、 去掉提示(不推荐)
强制删掉该提示,注意对应的python版本
sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bk
方案二、使用pipx(推荐)
建议安装第三方工具时,使用该方案: 因为install时,会自动根据packagename创建一个虚拟环境,如果需要其他的包时,需要使用inject向其中添加依赖包,不如直接使用venv. 首先安装pipx
apt install pipx
pipx ensurepath
安装工具:
pipx install package_name
方案三、使用venv(推荐)
开发脚本过程中,安装第三方依赖建议使用这种方案
mkdir -p $HOME/.env && python3 -m venv $HOME/.env/project_name
激活虚拟环境:
source /root/.env/project_name/bin/activate
激活之后,即可正常使用pip3/pip 安装依赖包
pip3 install package_name