解决 Mac使用pycharm,使用ddddocr 1.6.0 识别验证码的安装问题.完整修复与验证指南
·
📌 背景与环境信息
- 硬件平台:Apple Mac mini(M4 芯片,ARM64 架构)
- 操作系统:macOS Sequoia(最新版)
- 开发工具:PyCharm Community Edition(中文版)
- Python 版本:3.12
- 包管理工具:
pip - 目标库:
ddddocr(版本 1.6.0)
问题描述
在使用 pip install ddddocr 命令安装了 ddddocr 的 1.6.0 版本后,尝试运行以下代码时遇到了导入错误:
python -c "from ddddocr import DdddOcr; print('✅ 安装成功!')"
报错信息如下:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/(用户名)/Documents/Python/1/.venv/lib/python3.12/site-packages/ddddocr/__init__.py", line 2, in <module>
from .core import DdddOcr
ImportError: cannot import name 'DdddOcr' from 'ddddocr.core' (/Users/(用户名)/Documents/Python/2/.venv/lib/python3.12/site-packages/ddddocr/core/__init__.py)
解决方案
该错误是由于 DdddOcr 类实际位于 ddddocr.compat.legacy 模块中,而导入路径不正确导致的。按照以下步骤修改相关文件即可解决问题。
正确文件结构应该如下:
ddddocr/
__init__.py → 从 .core 导入 DdddOcr
core/
__init__.py → 定义了 DdddOcr 类
步骤一:修改 core/__init__.py
找到并编辑 /Users/(用户名)/Documents/Python/1/.venv/lib/python3.12/site-packages/ddddocr/core/__init__.py 文件,将其内容替换为:
# coding=utf-8
"""
核心功能模块
提供OCR识别、目标检测、滑块匹配等核心功能
"""
from .base import BaseEngine
from .ocr_engine import OCREngine
from .detection_engine import DetectionEngine
from .slide_engine import SlideEngine
# ✅ 正确导入:DdddOcr 实际在 compat.legacy 模块中
from ..compat.legacy import DdddOcr
__all__ = [
'BaseEngine',
'OCREngine',
'DetectionEngine',
'SlideEngine',
'DdddOcr'
]
步骤二:修改 __init__.py
找到并编辑 /Users/(用户名)/Documents/Python/1/.venv/lib/python3.12/site-packages/ddddocr/__init__.py 文件,将其内容替换为:
# coding=utf-8
# ✅ 从 core 导入,因为 core/__init__.py 已正确导入 DdddOcr
from .core import DdddOcr
# ✅ 从 utils 导入真实存在的符号
from .utils import (
base64_to_image,
get_img_base64,
png_rgba_black_preprocess,
DDDDOCRError,
ModelLoadError,
ImageProcessError,
)
# 向后兼容别名
DdddOcrInputError = DDDDOCRError
InvalidImageError = ImageProcessError
__all__ = [
"DdddOcr",
"base64_to_image",
"get_img_base64",
"png_rgba_black_preprocess",
"DDDDOCRError",
"ModelLoadError",
"ImageProcessError",
"DdddOcrInputError",
"InvalidImageError",
]
验证修复结果
完成上述修改后,再次运行测试命令验证是否解决了问题:
python -c "from ddddocr import DdddOcr; print('✅ 安装成功!')"
注意:ddddocr 1.6.0官方说最高支持Python3.13. 我建议使用Python3.12方便后续和别的库配合使用.
测试方法:验证修复是否成功
为了确认修复有效,建议进行多维度测试。以下是推荐的 四步验证流程:
🔹 测试 1:基础导入测试(快速验证)
python -c "from ddddocr import DdddOcr; print('✅ 基础导入成功!')"
✅ 若输出 ✅ 基础导入成功!,说明核心类已正常加载。
🔹 测试 2:创建实例并调用默认方法
from ddddocr import DdddOcr
import cv2
import numpy as np
# 生成一张简单的测试图片(含文字)
img_data = np.zeros((100, 200, 3), dtype=np.uint8)
cv2.putText(img_data, "Hello DdddOcr!", (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# 转为 base64 编码
import base64
_, buffer = cv2.imencode('.jpg', img_data)
img_b64 = base64.b64encode(buffer).decode()
# 初始化 OCR 引擎并识别
ocr = DdddOcr()
result = ocr.classification(img_b64)
print("OCR 识别结果:", result)
📌 预期输出:
OCR 识别结果: Hello DdddOcr!
✅ 成功表示模型加载正常,图像预处理与推理链路畅通。
更多推荐
所有评论(0)