ModuleNotFoundError: No module named ‘pkg_resources’

该报错通常出现在 Linux 上首次运行 Stable Diffusion WebUI 的 webui.sh 安装脚本时,脚本无法生成或激活项目目录下的 Python 虚拟环境(venv)。优先排查系统是否真正装好 python3-venv / virtualenv ,以及 venv/ 目录是否被正

快速结论:该报错通常出现在 Linux 上首次运行 Stable Diffusion WebUI 的 webui.sh 安装脚本时,脚本无法生成或激活项目目录下的 Python 虚拟环境(venv)。优先排查系统是否真正装好 python3-venv/virtualenv,以及 venv/ 目录是否被正确创建。

适用环境:Issue 中确认的操作系统为 Linux(Linux Mint 20.3 Cinnamon、Ubuntu 16.04、Ubuntu 20.04)。其他 Python 版本、CUDA、显卡信息在 Issue 中未明确给出,不要凭猜测补齐。

最快修复方案:进入 stable-diffusion-webui 目录后手动重建 venv,再重新运行脚本:cd stable-diffusion-webuipython3 -m venv venv/bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)。若 venv/ 已存在且损坏,先执行 rm -rf venv/ 再重建。

注意事项:部分用户需要加 sudo 才能创建 venv,说明目录权限可能有问题(有用户通过 chown -R $USER:$USER 修复);如果系统缺少 ensurepip,手动创建 venv 也可能失败,可优先尝试 --without-pip(见下方步骤,属 Issue 中用户验证过的绕行方案);若 python_cmd 被改成自定义解释器,需确认其 Python 版本与系统 python3-venv 匹配。

问题场景

用户在 Linux 上按官方文档直接执行 bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh) 安装 Stable Diffusion WebUI。即使已经安装依赖,脚本仍在启动阶段报错退出,提示无法激活 Python venv。用户进一步执行 source venv/bin/activate 时得到 bash: venv/bin/activate: No such file or directory,说明 venv/ 目录下根本没有生成 activate 文件。

报错原文

ERROR: Cannot activate python venv, aborting...

bash: venv/bin/activate: No such file or directory

Error: Command '['/home/whoami/stable-diffusion-webui/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

python3: No module named ensurepip

原因分析

最可能的原因是系统缺少可用的 python3-venvvirtualenv,导致安装脚本未能成功创建 venv/ 目录(目录存在但没有 bin/activate)。Issue 中一位用户进一步定位到 Ubuntu 上可能缺少或禁用了 ensurepip,而 python3 -m venv venv/ 会调用 ensurepip,因此手动创建 venv 也可能失败并报 No module named ensurepip。此外,若本地 Python 版本与 WebUI 使用的 venv 版本(Issue 中提到为 3.8)不一致,或目录权限不足(有用户需要 sudo、有用户用 chown 修复),也可能是同类报错的诱因。以上除 python3-venv 缺失外,其余均属可能原因。

环境排查

  • 操作系统:确认是否为 Linux(Issue 覆盖 Linux Mint 20.3 Cinnamon、Ubuntu 16.04、Ubuntu 20.04)。
  • Python:确认系统 python3 可用,并检查其版本;Issue 提到 WebUI 的 venv 使用 Python 3.8。
  • python3-venv/virtualenv:执行 python3 -c 'import venv',正常情况下不应报错。
  • ensurepip:如手动创建 venv 报错,可执行 python3 -Im ensurepip --upgrade --default-pip 查看是否提示 No module named ensurepip
  • 目录权限:确认当前用户对 stable-diffusion-webui 目录有写权限(Issue 中有用户通过 chown -R $USER:$USER 解决)。
  • webui-user.sh:确认是否设置过自定义 python_cmd(Issue 维护者曾专门询问此项)。

解决步骤

  1. 先确认系统已安装 python3-venv。在 Debian/Ubuntu 系发行版上可执行:sudo apt updatesudo apt install python3-venv(Issue 中有用户反馈此组合解决了问题)。
  2. 验证 python3 -c 'import venv' 无报错。
  3. 进入项目目录:cd stable-diffusion-webui
  4. 若已有损坏的 venv,先删除:rm -rf venv/
  5. 手动重建虚拟环境:python3 -m venv venv/。这一步应能在 venv/bin 下生成 activate 文件,Issue 中多位用户反馈此命令直接修复了问题。
  6. 若上一步报 ensurepip 相关错误,可优先尝试 Issue 中用户给出的绕行方式:python3 -m venv venv/ --without-pip,先生成 activate 文件。
  7. 如果创建时提示权限不足,可尝试对项目目录修正属主:chown -R $USER:$USER /path/to/stable-diffusion-webui(Issue 中有用户以此解决)。
  8. 回到上级目录后重新运行安装脚本:cd .. 然后 bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
  9. 若仍失败并怀疑 Python 版本不一致(本地非 3.8),Issue 中有用户在 Ubuntu 20.04 上安装对应版本 venv:sudo apt-get install python3.8-venv,随后重复上述重建步骤。

验证方法

再次运行 webui.sh 时不再出现 ERROR: Cannot activate python venv, aborting...,且 venv/bin/activate 文件确实存在。可手动执行 source venv/bin/activate 确认无 No such file or directory 报错,脚本能继续执行后续依赖安装并最终启动 WebUI。

参考来源

AUTOMATIC1111/stable-diffusion-webui #1120

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25297

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注