Stable Diffusion WebUI 安装问题:解决 pkg_resources 导入错误
在使用 Stable Diffusion WebUI 进行安装时,部分用户可能会遇到一个常见的 Python 环境配置问题。当尝试启动 WebUI 时,系统会抛出 ImportError: cannot import name 'packaging' from 'pkg_resources' 的错误提示。这个问题主要源于 setuptools 软件包的最新版本更新带来的兼容性问题。
问题背景分析
setuptools 是 Python 生态中一个重要的包管理工具,负责处理 Python 包的安装和依赖关系。在最近的版本更新中(特别是 setuptools 70.0.0 版本),该工具对内部模块结构进行了调整,移除了 pkg_resources 模块中的 packaging 子模块。这一变更导致依赖于旧版结构的 Stable Diffusion WebUI 在启动时出现导入错误。
解决方案详解
临时修复方案
对于大多数用户来说,最简单的解决方案是通过修改项目依赖文件来锁定 setuptools 的版本:
- 定位到项目目录下的
requirements_versions.txt文件 - 在文件中添加一行内容:
setuptools==69.5.1 - 保存文件后重新启动 WebUI
这个操作会将 setuptools 回退到已知稳定的 69.5.1 版本,避免新版带来的兼容性问题。需要注意的是,这个修改只是临时性的,在问题得到官方修复后应该移除这行内容,以免影响未来的更新。
永久性解决方案
对于希望彻底解决问题的用户,可以考虑以下方法:
-
在虚拟环境中直接降级 setuptools:
pip install setuptools==69.5.1 -
检查并更新所有相关依赖:
pip install --upgrade -r requirements.txt
技术原理深入
这个问题的本质是 Python 包管理中的版本冲突。setuptools 70.0.0 进行了重大的内部重构,将部分功能从 pkg_resources 模块中移出。而 Stable Diffusion WebUI 的部分依赖项仍然期望通过传统的导入路径访问这些功能,因此导致了兼容性问题。
在 Python 包管理中,这种"破坏性更新"并不罕见。成熟的解决方案通常包括:
- 使用虚拟环境隔离项目依赖
- 精确控制关键依赖的版本号
- 及时关注上游项目的更新公告
最佳实践建议
为了避免类似问题,建议用户在安装 Stable Diffusion WebUI 时:
- 始终在干净的虚拟环境中进行安装
- 定期备份工作环境配置
- 关注项目官方的问题追踪系统
- 在更新关键依赖前先测试兼容性
通过以上方法,用户可以最大限度地减少安装过程中的问题,确保 AI 创作环境的稳定性。对于开发者而言,这个问题也提醒我们在依赖管理中需要考虑向后兼容性,特别是对于广泛使用的开源项目。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
FreeSql功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin 以及 AOT。C#00