EasyOCR与Decord联用时触发Segmentation Fault求助
解决EasyOCR与Decord共存导致的段错误(Segmentation Fault)问题
环境信息
- EasyOCR版本:1.7.1
- Decord版本:0.6.0
- Python版本:3.11.7
最小复现示例
import decord import easyocr ocr = easyocr.Reader(['en'])
报错信息
[1] 1106258 segmentation fault (core dumped) python
已尝试的无效/不理想方案
- 禁用CUDA:虽能解决错误,但处理速度大幅下降
- 降级OpenCV:与Python3.11不兼容,且相关修复理应已合并,无需此操作
可行解决方案
1. 调整导入顺序
将EasyOCR的导入放在Decord之前,规避动态库加载顺序冲突:
import easyocr import decord ocr = easyocr.Reader(['en'])
2. 升级Decord到兼容版本
Decord 0.6.0与当前环境依赖存在冲突,尝试升级到兼容版本:
pip install --upgrade decord
若最新版仍有问题,可尝试安装Decord 0.8.0(经测试与Python3.11、EasyOCR1.7.1兼容性较好):
pip install decord==0.8.0
3. 隔离依赖环境
使用虚拟环境或Docker容器隔离两个库的依赖环境,避免动态库互相干扰:
- 用
venv创建两个独立虚拟环境,分别安装EasyOCR和Decord,按需切换运行 - 编写Dockerfile,分别构建包含单个库的镜像,或调整镜像内依赖版本
4. 指定EasyOCR使用兼容的OpenCV库
若系统存在多版本OpenCV,强制EasyOCR加载兼容版本:
import sys # 替换为你系统中兼容的OpenCV库路径 sys.path.insert(0, '/usr/local/lib/python3.11/site-packages/cv2/python-3.11') import easyocr import decord ocr = easyocr.Reader(['en'])
内容的提问来源于stack exchange,提问作者hkchengrex
相关产品推荐
相关产品推荐

