pip install报错 externally-managed-environment 的终极解决方案
大家好我是搞自动化的大飞今天碰到个挺长的Python报错顺手记录一下以防也有人会遇到。报错这是在一台 Debian 服务器上跑pip install xyz报错信息× 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 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.11/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.这个错误翻译成人话就是系统不允许使用 pip 直接安装全局包了其实从 Python 3.11 开始一些 Debian/Ubuntu 系统就默认启用了这个保护机制——目的是保护系统级的 Python 环境别慌系统环境不能安装我们直接用虚拟环境安装就完事了解决一、安装 venv首先确认一下有没有 venvsudo apt update sudo apt install python3-venv如果是 macOS用 Homebrew 安装的 Python 会默认自带 venv。其他系统则不会二、创建虚拟环境在你项目的根目录执行python3 -m venv .venv.venv这个名字随便起爱叫什么叫什么。执行完会在当前目录下生成一个.venv文件夹所有东西都隔离在里面跟系统环境互不干扰。三、两种方法3.1、直接用绝对路径什么也不需要改每次执行命令带上前缀即可.venv/bin/pip3 install 包名 .venv/bin/python3 脚本.py优点是不需要任何操作缺点是每次都要加上前缀3.2、激活推荐使用命令激活source .venv/bin/activate激活之后命令行前面会出现(.venv)的标识这时候直接用pip和python就行了不用再带路径pip3 install 包名 python3 脚本.py用完退出环境deactivate所以以后再看到externally-managed-environment这个报错不用慌也别图省事加--break-system-packages强行绕过。老老实实建个虚拟环境既干净又安全还不会影响系统里其他东西。今天就到这你之前遇到过这个报错吗评论区聊聊你是怎么解决的下期见