Linux 使用pip报错(error: externally-managed-environment )解决方案

**报错输出如下:**error: externally-managed-environment
点击查看代码

复制代码
zhuji@hcss-ecs-2045:~/$ sudo pip3 install -r requirements.txt 
[sudo] zhuji 的密码:
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.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.

造成原因:

这个错误提示说明当前Python环境是由操作系统外部管理的(通常是因为使用了系统自带的Python),

为了避免破坏系统环境,建议使用虚拟环境或者使用系统包管理器(apt)来安装包。

根据提示,我们可以采取以下几种方法之一:

方法1:使用apt安装对应的包(如果存在的话)

但是这里我们是通过requirements.txt安装,可能包不在系统仓库中。

方法2:使用虚拟环境(推荐)

步骤:

1.创建一个虚拟环境
点击查看代码

复制代码
确保安装了python3-venv(如果没有,请先安装)
sudo apt install python3-venv
在项目目录下创建虚拟环境(假设虚拟环境目录名为venv)
python3 -m venv venv

2.激活虚拟环境,在虚拟环境中安装requirements.txt中的包
点击查看代码

复制代码
激活虚拟环境
source venv/bin/activate
然后使用pip安装requirements.txt中的包
pip install -r requirements.txt

3.当不再使用时,可以退出虚拟环境 关闭虚拟环境后,下载的pip包会自动消失 点击查看代码

复制代码
当不再使用时,可以退出虚拟环境(关闭虚拟环境后,下载的pip包会自动消失)
deactivate

方法3:

使用pipx(适用于安装Python应用程序,但这里是一组包,可能不太适合)
点击查看代码

复制代码
# 安装 pipx
sudo apt install pipx

# 用 pipx 安装包(示例)
pipx install 包名

方法4:

忽略警告(不推荐),使用--break-system-packages参数,但这样可能会破坏系统环境。
点击查看代码

复制代码
# 如果坚持安装到系统环境(可能破坏系统稳定性),可添加 --break-system-packages 参数:
sudo pip3 install --break-system-packages -r requirements.txt
相关推荐
兵慌码乱5 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵7 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio10 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
AlfredZhao11 小时前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
用户03321266636712 小时前
使用 Python 从零创建 Word 文档
python
Csvn16 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽17 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175319 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python