OpenClaw 在 Ubuntu 24 云服务器踩坑:PEP 668 导致 pip 全部失效的终极解决方案

john
john 在知识的海洋中遨游

0 人点赞了该文章 · 11 浏览

🧩 背景

在 Ubuntu 24 云服务器上部署 OpenClaw,
一切正常启动,结果执行 Python skill 时直接报错:

error: externally-managed-environment This environment is externally managed See PEP 668

当时我以为:

  • Python 没装?

  • pip 坏了?

  • openclaw 配错?

结果都不是。

storage/article/20260213/70c07be2cf27718890c43d600da971ca.png


💣 真相:Ubuntu 24 启用了 PEP 668

从 Ubuntu 23+ 开始:

系统 Python 被标记为 externally managed

意思是:

不允许你用 pip 往系统 Python 里装包。

你只要执行:

pip install xxx

就会被拒绝。


🤯 为什么会这样?

Ubuntu 现在强制:

  • apt 管理系统 Python

  • pip 不得污染系统环境

这是为了防止:

  • 系统依赖冲突

  • apt 升级崩溃

  • Python 环境被破坏

理论上是好事,但对云服务器部署真的很折磨。


🚑 正确解决方案(推荐)

第一步:安装 venv

sudo apt install python3.12-venv python3-pip

第二步:创建专用虚拟环境

python3 -m venv ~/.venvs/openclaw

第三步:用虚拟环境 pip 安装依赖

~/.venvs/openclaw/bin/python -m pip install edge-tts requests pillow

记住:

❌ 不要再用 pip install

✅ 一定要用:

venv路径/bin/python -m pip install

第四步(关键):让 OpenClaw 使用虚拟环境

如果是 systemd 启动:

sudo systemctl edit openclaw

加入:

[Service] Environment="PATH=/home/azureuser/.venvs/openclaw/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

重启:

sudo systemctl daemon-reload sudo systemctl restart openclaw

🔥 为什么不能用 --break-system-packages?

虽然可以:

pip install --break-system-packages

但会:

  • 破坏系统 Python

  • 未来 apt 更新可能炸

  • 云服务器长期运行风险极高

不推荐。


🎯 最终效果

  • 不再触发 PEP 668

  • OpenClaw Python skill 正常运行

  • 系统 Python 保持干净

  • 未来升级安全



💡 如果你也在做:

  • OpenClaw

  • 企业微信机器人

  • 飞书 AI Agent

  • Ubuntu 云部署

我可以整理一份完整避坑清单。

发布于 8 小时前

免责声明:

本文由 john 原创或转载,著作权归作者所有,如有侵权,请联系我们删除。 info@frelink.top

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

All Rights Reserved Frelink ©2026