[v0.20.0] cp38-abi3 wheels contains cp312 bindings

该报错发生在使用 vLLM 0.20.0 的 PyPI 预编译 wheel(标签为 cp38-abi3)时,包内实际捆绑了仅针对 Python 3.12 编译的 deep_gemm 扩展(cp312),导致在 Python 3.8–3.11 或 3.13–3.14 环境导入时可能失败。

快速结论:该报错发生在使用 vLLM 0.20.0 的 PyPI 预编译 wheel(标签为 cp38-abi3)时,包内实际捆绑了仅针对 Python 3.12 编译的 deep_gemm 扩展(cp312),导致在 Python 3.8–3.11 或 3.13–3.14 环境导入时可能失败。

适用环境:vLLM 0.20.0 PyPI wheel,Linux x86_64,涉及 deep_gemm 第三方扩展。

最快修复方案:暂无确认的一步修复方案。Issue 中提出尝试改用源码编译,以匹配目标 Python 版本;或考虑将 deep-gemm 作为可选 extras 依赖(pip install vllm[deepgemm]),此为可行方向但尚未验证。

注意事项:该问题已通过 PR #41476 标记为解决,但 Issue 评论区指出 revert 后问题在 0.29.0 中仍存在;官方最终方案尚不明确,以上方案均需结合实际情况验证。

问题场景

用户安装 vLLM 0.20.0 的 PyPI 预编译 wheel 后,在非 Python 3.12 环境中导入或使用涉及 deep_gemm 的功能时触发。该 wheel 的标签为 cp38-abi3,但内部捆绑的 deep_gemm 扩展仅包含 Python 3.12 版本。无论用户实际使用 3.8–3.11 还是 3.13–3.14,该扩展都可能无法被正确加载。

报错原文

vllm-0.20.0-cp38-abi3-manylinux_2_35_x86_64.whl
vllm/third_party/deep_gemm/_C.cpython-312-x86_64-linux-gnu.so

原因分析

可能原因:该 wheel 的 ABI 标签与实际内容不一致。虽然 wheel 标记为 cp38-abi3(理论上可兼容 Python 3.8 及以上),但包内 deep_gemm 扩展 _C.cpython-312-x86_64-linux-gnu.so 是仅针对 CPython 3.12 编译的 cp312 绑定,并非 abi3 兼容的动态库。因此,非 Python 3.12 环境在导入该扩展时会因 ABI 不匹配而失败。

环境排查

  • 确认当前 Python 版本(3.8–3.11 或 3.13–3.14 均可能受影响,仅 3.12 可正常工作)。
  • 确认是否安装了 vLLM 0.20.0 PyPI wheel(vllm-0.20.0-cp38-abi3)。
  • 检查 Linux 架构是否为 x86_64。
  • 确认是否实际使用了 deep_gemm 相关功能(如特定模型或配置)。

解决步骤

  1. 优先确认现状:检查当前环境中 vLLM wheel 的内容,确认 deep_gemm 扩展的 Python 版本标记。
  2. 改为源码编译:卸载 PyPI wheel,改用源码从当前 Python 版本编译安装,确保扩展绑定与 Python 版本一致。
  3. 或等待官方修复:该问题与 PR #41476 相关(后已 revert),建议关注后续发版说明。Issue 中提到在 0.29.0 中问题仍存在,说明修复可能未彻底完成。
  4. 可优先尝试:将 deep-gemm 作为可选依赖安装(pip install vllm[deepgemm]),但此方案仅作为建议,实际效果未在 Issue 中验证。

验证方法

在不同 Python 版本环境中尝试导入 deep_gemm 扩展,确认不再出现 ABI 错误;或直接运行 vLLM 的完整流程,观察是否还能正常使用 deep_gemm 功能。

参考来源

vllm-project/vllm #41487

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 22503

发表回复

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