如何解决 PaddleOCR 安装中 faiss-cpu 编译失败问题

PaddleOCR 安装报错 Failed building wheel for faiss-cpu,根本原因通常是 Python 版本过高(如 3.11+)导致 faiss-cpu 不兼容;降级至 Python ≤3.9(推荐 3.8)并使用 Conda 环境可彻底解决。

paddleocr 安装报错 `failed building wheel for faiss-cpu`,根本原因通常是 python 版本过高(如 3.11+)导致 faiss-cpu 不兼容;降级至 python ≤3.9(推荐 3.8)并使用 conda 环境可彻底解决。

在安装 PaddleOCR 生态相关库(如 paddleocr、paddleclas)时,若执行 pip install paddleclas 报出如下错误:

ERROR: Failed building wheel for faiss-cpu
Failed to build faiss-cpu
ERROR: Could not build wheels for faiss-cpu, which is required to install pyproject.toml-based projects

这并非 pip 本身故障,而是 faiss-cpu(Facebook 开发的高效相似性搜索库,被 paddleclas 依赖)尚未为 Python 3.10/3.11 提供预编译 wheel 包,且其源码编译对高版本 Python 支持不完善——尤其在 Windows 或部分 Linux 环境下缺少对应编译工具链时,极易失败。

推荐解决方案:使用 Python 3.8 + Conda 环境(最稳定可靠)

文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

下载

# 1. 创建独立的 Python 3.8 Conda 环境
conda create -n paddle_env python=3.8
conda activate paddle_env

# 2. 按顺序安装(优先使用官方推荐渠道)
pip install --upgrade pip
pip install paddlepaddle  # CPU 版本(如需 GPU,请替换为 paddlepaddle-gpu)
pip install paddleocr
pip install paddleclas

⚠️ 注意事项:

  • ❌ 避免在 Python ≥3.10 的环境中强行编译 faiss-cpu:即使安装了 cmake、swig、g++ 等工具,仍大概率因 ABI 不兼容或 PyBind11 版本冲突而失败;
  • ✅ 若必须使用较新 Python 版本(如 3.10),可尝试跳过 faiss-cpu 的直接依赖:paddleclas 在非检索类任务中并非必需;或改用 pip install paddleclas --no-deps 后手动安装兼容版本(如 faiss-cpu==1.7.4,仅支持至 Python 3.9);
  • ? 国内用户建议配置清华镜像源加速安装:
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

? 总结:PaddleOCR 官方生态(含 paddleclas)当前(截至 2025 年)明确要求 Python ≤3.9。将环境切换至 Python 3.8 是成本最低、成功率最高的实践方案。开发前务必验证环境:python --version 和 pip list | grep -i "paddle\|faiss",确保各组件版本协同无冲突。

相关推荐:

微软 TypeScript 7.0 正式版发布:14 年来最大变革,编译性能提升约 10 倍

感谢网友 华南吴彦祖、你好假装 的线索投递! 7 月 9 日消息,微软今日宣布推出 TypeScript 7.0 正式版,编译性能提升约 10 倍。注:TypeScript 是由微软开发并维护的开源编程语言,它是 JavaScript 的严格语法超集,为这门动态脚本语言加入了可选的静态类型检查。本次更新最大的亮点在于使用 Go 框架重构底层,是自 2012 年诞生以来最重大的底层重构。官方表示编译...

Steam Deck 客户端 Beta 测试版更新:修复部分游戏启动失败问题

7 月 3 日消息,Valve 现已向预览 / Beta 测试通道推送了新版 Steam Deck 客户端更新,本次更新主要修复了多项功能问题,恢复了分辨率设置的完整选项。通用更新恢复了“最高游戏分辨率”下拉菜单中的完整选项,所有选项可在“更多选项”子菜单中找到远程游玩修复了离线设备仍被显示为可流式传输的错误问题SteamRT3 Beta修复了部分游戏无法启动的故障本次更新仅面向 Steam De...

米侠浏览器如何解决图片加载不出来只显示占位框的问题?

图片显示空白方框或灰色占位符,首要原因是“图片加载”功能被关闭;需在设置→隐私与安全中开启该开关,否则后续所有修复均无效。 米侠浏览器访问网页时图片只显示空白方框或灰色占位符,说明图片资源请求已发出但未成功渲染,常见于缓存损坏、加载权限关闭、扩展拦截或混合内容被阻断等场景。 确认图片加载功能已启用 米侠浏览器默认提供“无图模式”节能开关,一旦开启,所有标签将被直接跳过解析,只留空框。【这是最常被忽...

如何解决Safari浏览器中iframe嵌套外部页面的Cookie跨域限制?

Safari中iframe嵌入外部页面时Cookie失效是因第三方Cookie拦截,需通过用户显式跳转使目标域名变第一方;方案包括前端引导页跳转、服务端302重定向或iframe自刷新、Nginx反向代理同域映射。 当你的网站在Safari中通过iframe嵌入外部页面(如合作方系统、第三方应用)时,该页面无法设置或读取Cookie,导致登录态丢失、会话中断、跳转失败——这不是代码bug,而是Sa...

如何解决WebRTC在Safari浏览器中无法获取麦克风和摄像头权限的问题?

Safari中WebRTC无法调用麦克风和摄像头,主因是系统级权限未开启、网站级媒体权限未授予、HTTPS安全要求不满足或权限缓存异常;需依次检查并配置macOS隐私设置中的麦克风/相机授权、Safari网站设置中的对应权限、地址栏实时授权,必要时重置权限记录,并确保使用HTTPS或localhost进行调试。 WebRTC在Safari中无法调用麦克风和摄像头,通常不是代码问题,而是系统级或浏览...

闪传怎么解决连接失败?常见问题处理方法

闪传连接失败主因是网络权限未开、Wi-Fi直连受阻或系统拦截;需开启WLAN状态/位置/附近设备权限,确认同局域网并关闭AP隔离,退出App后重置飞行模式,再严格按“一键换机”流程配对。 闪传连接失败时,手机之间无法建立直连通道,传输任务卡在“正在连接”或直接报错,多数情况并非软件崩溃,而是网络权限、系统设置或物理连接环节出了偏差。 检查双方设备的网络状态与权限 打开两部手机的「设置」→「无线和网...

谷歌浏览器Chrome 126中如何调试和查看WebAssembly编译代码?

Chrome 126调试WebAssembly需启用DWARF支持:安装C/C++ DevTools扩展、开启“Enable WebAssembly debugging”设置、在Experiments中启用DWARF支持、编译时加-g和-O0参数,且须通过http/https访问页面。 在Chrome 126中调试WebAssembly代码,必须启用DWARF调试支持才能看到源码级变量、函数名和行...

观涛云信如何解决短信验证码接收不到的问题

观涛云信用户收不到短信验证码需依次排查:信号与网络注册状态、短信拦截设置、短信中心号码(SMSC)准确性、短信存储空间及数据库索引,并可临时启用语音验证码。 观涛云信用户在登录、注册或重置密码时收不到短信验证码,可能是信号异常、拦截设置开启、运营商通道受限或短信中心号码错误导致。需按实际接收环境逐项排查,避免跳过基础检查直接联系客服。 先确认手机基础通信状态是否正常 打开手机拨号界面,拨打1008...