Open WebUI 部署报错 ModuleNotFoundError: No module named 'pkg_resources' 解决
问题描述
在启动 Open WebUI 后台(backend)时,程序在初始化向量数据库客户端阶段崩溃。核心报错信息如下:
File "...\site-packages\pymilvus\client\__init__.py", line 6, in <module>
from pkg_resources import DistributionNotFound, get_distribution
ModuleNotFoundError: No module named 'pkg_resources'
环境背景
- 项目: Open WebUI
- 数据库: Milvus (Standalone) / PostgreSQL
- Python 环境: Conda (Python 3.10+)
- 依赖库:
pymilvus
原因分析
报错定位在 pymilvus 的内部调用中。
- 直接原因:
pkg_resources是setuptools库的一个模块。在较新的 Python 环境中,如果只安装了基础包,可能并没有包含setuptools。 - 深层原因:旧版本的
pymilvus使用了pkg_resources来管理版本和依赖检查,而这种方式在 Python 3.12+ 或某些精简版 Conda 环境中已不再推荐,甚至会因为缺少安装包直接导致导入失败。
解决方案
第一步:补齐基础依赖
首先,我们需要手动为环境安装 setuptools,这是最快捷的补丁方案:
pip install setuptools
第二步:彻底解决(推荐)
仅仅补丁可能不够,因为旧版 pymilvus 可能还存在其他的兼容性小坑。建议直接升级 pymilvus 到最新版本,新版已经优化了对版本检索的逻辑,减少了对 pkg_resources 的硬依赖。
pip install --upgrade pymilvus
第三步:验证修复
在终端中输入以下一行命令,如果不报错并输出 Success,说明环境已经恢复正常:
python -c "import pkg_resources; print('Success')"
进阶提示
如果你是在配置 DATABASE_URL 使用 PostgreSQL 和 Milvus 进行 RAG(检索增强生成)开发,请确保:
- Milvus 服务已启动:使用 Docker Desktop 确保
milvus-standalone正常运行。 - 环境变量生效:确保
VECTOR_DB=milvus等配置已正确加载。


