快速结论:这个报错出现在用 LiteLLM Proxy 转发 Ollama 视觉模型(VLM)图片请求时,底层缺少 Pillow 导致图片转换失败。优先检查运行 LiteLLM 的容器/虚拟环境中是否已安装 Pillow,尤其是官方 Docker 镜像的运行时依赖未包含它。
适用环境:LiteLLM Proxy v1.83.14-stable;官方容器镜像 docker.litellm.ai/berriai/litellm-database;容器内 Python 3.13(路径 /app/.venv);报错发生在调用 Ollama 原生 provider 的视觉路径。
最快修复方案:在容器终端里手动为 LiteLLM 的虚拟环境安装 Pillow:依次执行 /app/.venv/bin/python -m ensurepip --upgrade、/app/.venv/bin/python -m pip install --upgrade pip、/app/.venv/bin/python -m pip install Pillow。该步骤由 Issue 评论者实测有效,发帖人也确认手动装 Pillow 可解决。
注意事项:Issue 中提到正式修复尚未随版本发布,手动安装在容器重建/重启后会失效,属于临时绕过。Issue 评论里的根因分析指向 Pillow 未被放入 Docker 构建的运行时 extra,但该结论来自社区分析,官方是否按此修复未在讨论中确认;另一条评论建议改用 Ollama 的 OpenAI 兼容端点绕过原生转换路径,也仅作为替代方案。
问题场景
用户通过 LiteLLM Proxy 调用代理后的 Ollama 模型(示例为 gemma4:31b-it-q8_0),请求中携带图片,走的是 Ollama 的视觉多模态路径。此时 LiteLLM 需要对图片做转换,但环境中缺少 Pillow,导致请求直接失败并返回 500。
报错原文
Request Failed
Error Code: 500
Message: litellm.APIConnectionError: ollama image conversion failed please run `pip install Pillow`
Traceback (most recent call last):
File "/app/.venv/lib/python3.13/site-packages/litellm/llms/ollama/common_utils.py", line 28, in _convert_image
from PIL import Image
ModuleNotFoundError: No module named 'PIL'
During handling of the above exception, another exception occurred:
...
File "/app/.venv/lib/python3.13/site-packages/litellm/llms/ollama/common_utils.py", line 30, in _convert_image
raise Exception(
"ollama image conversion failed please run `pip install Pillow`"
)
Exception: ollama image conversion failed please run `pip install Pillow`
Received Model Group=gemma4:31b-it-q8_0
Available Model Group Fallbacks=None
LiteLLM Retried: 3 times, LiteLLM Max Retries: 3
原因分析
LiteLLM 的 Ollama 视觉路径在运行时会执行 from PIL import Image 来做图片转换,而运行环境里没有安装 Pillow,因此抛出 ModuleNotFoundError。Issue 中的社区排查(通过 git blame 定位到 PR #25007,Poetry 迁移到 uv 时对依赖分组的调整)认为,Pillow 最终只留在 CI 依赖组,没有进入 Docker 构建使用的运行时 extra(proxy、proxy-runtime、extra_proxy 等),所以官方镜像中自然没有 Pillow。该依赖分组结论属于社区分析,Issue 中未见官方确认;可以确定的是,当前容器镜像确实缺少 Pillow 且 Ollama 视觉路径会无条件导入它。
环境排查
- LiteLLM 版本与部署方式:确认是否使用 v1.83.14-stable 或同类官方 Docker 镜像,镜像 tag 及构建时间会影响依赖内容。
- 容器内 Python 环境:确认 LiteLLM 实际使用的解释器路径是否为 /app/.venv/bin/python(报错栈显示依赖安装在 /app/.venv/lib/python3.13/site-packages)。
- Pillow 安装状态:在容器内检查 LiteLLM 虚拟环境中是否可以导入 PIL,而不是只检查系统 Python。
- 调用路径:确认请求是通过 LiteLLM 的原生 ollama provider(含图片转换逻辑),还是走 Ollama 的 OpenAI 兼容端点。
- 模型与请求内容:确认是否为带图片的 VLM 请求,纯文本请求不会触发该图片转换分支。
解决步骤
- 进入运行 LiteLLM 的容器终端(Docker 部署下即进入对应容器)。
- 在容器内执行
/app/.venv/bin/python -m ensurepip --upgrade,确保 LiteLLM 使用的虚拟环境自带可用的 pip。 - 执行
/app/.venv/bin/python -m pip install --upgrade pip升级 pip。 - 执行
/app/.venv/bin/python -m pip install Pillow安装 Pillow。 - 重新发起一次带图片的 Ollama VLM 请求验证。若仍失败,确认安装是否落在 LiteLLM 实际使用的同一虚拟环境中。
验证方法
再次通过 LiteLLM Proxy 向同一个 Ollama 视觉模型发送带图片的 chat 请求,确认不再返回 500,也不再出现 ollama image conversion failed please run pip install Pillow 或 ModuleNotFoundError: No module named 'PIL'。也可在容器内用 LiteLLM 的虚拟环境执行导入检查,确认能够 from PIL import Image。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug]: MCP on host mode returns empty dataset ids](https://www.chat-gpts.plus/wp-content/uploads/2026/09/13183-415cd908-768x403.jpg)
