解决运行pip install时提示错误:error: externally-managed-environment

文章讲述了在新版Ubuntu中使用pip时遇到的externally-managed-environment错误,这是为了避免系统包管理器与Python包管理的冲突。提供了三种解决方案:禁用警告、使用pipx管理包和创建Python虚拟环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新版ubuntu使用pip时发生错误:

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.

收到一个错误提示:error: externally-managed-environment,即“外部管理环境”错误,但这不是一个 bug,新的发行版中,正在使用 Python 包来实现此增强功能,这个更新是为了避免操作系统包管理器 (如pacman、yum、apt) 和 pip 等特定于 Python 的包管理工具之间的冲突,这些冲突包括 Python 级 API 不兼容和文件所有权冲突。

可以看一下python官方的说明:
PEP 668 – Python base environments Python 增强提案 (PEP)icon-default.png?t=N7T8https://realpython.com/python-virtual-environments-a-primer/?ref=yaolong.net

解决方案:

1:如果你习惯于原来的用法可以强制删除此警告:

sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bk
注意python版本号写你自己的别直接抄,不知道到底是多少可以进/user/lib看看:
find /usr/lib/ -type d -name "*python*"

2:老实点使用pipx

安装pipx:

sudo apt install pipx

以后就使用Pipx去安装包文件了:

pipx install package_name

添加环境变量:

pipx ensurepath

删除使用pipx安装的软件包:

pipx uninstall package_name

3:使用venv

如果你是专业开发人员,在运行或构建py文件时遇到“ModuleNotFoundError: No module named 'xxx'”错误,推荐使用Python虚拟环境,借助虚拟环境,使用不同版本的包依赖项和Python,避免包之间的任何冲突。

安装 venv:

sudo apt install python3-venv
#或者
sudo apt install python3.10-venv

生成Python虚拟环境:

mkdir -p $HOME/.env && python3 -m venv $HOME/.env/project_name

将看到一个.env在主目录中,并且你将在 .env 中拥有项目目录,每个虚拟环境项目目录中都会有自己的 Python 和 Pip 副本。

安装模块:

$HOME/.env/project_name/bin/python -m pip install --upgrade pip
$HOME/.env/project_name/bin/python -m pip install package_name

用新的虚拟环境执行py文件:

source $HOME/.env/project_name/bin/activate
$HOME/.env/project_name/bin/python ./xxxx.py
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中二电工吹短笛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值