py-wechat-ocr
这是一个基于微信 OCR 引擎(WeChatOCR)的 Python 封装库。它通过直接加载微信解包后的 wxocr.dll 结合底层的 CPython 扩展模块 wcocr.pyd(该二进制模块编译自 swigger/wechat-ocr 开源项目),实现极速、高准确率的本地图片文字识别(OCR)。
注意: 本库底层依赖编译好的 Windows 动态链接库,因此仅支持 Windows 平台。
环境要求
- 操作系统:Windows 10/11
- Python 版本:
>= 3.10 - 已测试微信版本:微信
4.1.9.57版本测试通过 - 本地依赖:电脑中已安装微信客户端(本库会自动从微信安装路径提取并解压核心的 OCR 依赖
WeChatOcr.bin)
安装方法
通过 PyPI 快速安装(推荐)
您可以直接使用 pip 或 uv 进行一键安装:
pip install py-wechat-ocr
# 或者使用 uv 安装
uv add py-wechat-ocr
本地源码编译安装
- 在项目根目录下构建包:
uv build - 构建完成后会在
dist/目录下生成.whl文件,通过以下命令进行本地安装:pip install dist/py_wechat_ocr-0.1.0-py3-none-any.whl
开发者调试安装(编辑模式)
如果您想要对本项目进行二次开发或调试,可以使用编辑模式(Editable Mode)安装:
pip install -e .
快速上手
安装完成后,您可以直接在您的 Python 代码中导入并使用它:
from wechat_ocr import WeChatOCR
try:
# 1. 初始化 OCR 引擎,需传入微信的实际安装路径
# 引擎在首次运行时,会自动从该路径解压所需的 wxocr.dll 依赖文件
wx_ocr = WeChatOCR(r"D:\Program Files\Tencent\Weixin")
# 2. 识别指定图片
print("开始识别...")
result = wx_ocr.ocr_img("test.png")
print("识别结果:", result)
# 3. 如果需要保存识别后的 JSON 数据,可以将 save_json 设为 True
# 识别结果将会自动保存在图片同目录下,命名为 test.png.json
wx_ocr.ocr_img("test.png", save_json=True)
# 4. 释放 OCR 引擎资源
wx_ocr.close()
print("微信 OCR 引擎已成功关闭。")
except Exception as e:
print(f"运行期间发生错误: {e}")
核心 API 说明
WeChatOCR(wx_dir: str | Path)
- 作用:初始化 OCR 引擎环境。
- 参数:
wx_dir: 微信客户端的安装路径(例如C:\Program Files\Tencent\Weixin)。引擎将在此目录的子文件夹中寻找版本目录,并自动释放、定位wxocr.dll核心库。
ocr_img(image_path: str, save_json: bool = False)
- 作用:对指定的图片进行 OCR 文字识别。
- 参数:
image_path: 需要识别的图片文件路径。save_json: 是否在图片所在目录下输出一份同名.json结果文件,默认为False。
- 返回值:返回识别出来的 JSON 字典,包含文字内容、坐标位置与置信度。
close()
- 作用:手动关闭底层的 OCR 引擎并释放内存。
常见问题解答
- 为什么提示“未找到核心文件: WeChatOcr.bin”?
请检查您传入的微信目录是否正确。本库需要在此目录下的子文件夹内找到类似
[版本号]\WeChatOcr.bin的文件。如果微信安装在非常规路径下,请务必传入该非常规的微信安装根路径。 - 能支持 Linux 或 macOS 吗?
不支持。核心的解压、DLL 注入以及
wcocr.pyd的编译代码深度绑定了 Windows 操作系统下的微信客户端依赖。
鸣谢
- 本项目所使用的二进制扩展模块
wcocr.pyd编译自开源项目 swigger/wechat-ocr。非常感谢原作者的开源贡献!
Metadata
Release files for py-wechat-ocr 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_wechat_ocr-0.1.1.tar.gz | 159.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_wechat_ocr-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 236.5 kB
Release files / py_wechat_ocr-0.1.1.tar.gz
| Download URL | py_wechat_ocr-0.1.1.tar.gz |
|---|---|
| Size | 159.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
abeb1086e522f2dbdf250ca06eb914b94b80b3e0f2dd47613954a0f19a2a77d9
|
|
BLAKE2b-256 checksum How to use checksums |
cee6b8f5456071bc72b85efad27c9c950387424f97e42211516d6ba03dfa4068
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Release files / py_wechat_ocr-0.1.1-py3-none-any.whl
| Download URL | py_wechat_ocr-0.1.1-py3-none-any.whl |
|---|---|
| Size | 77.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cd2e16daf665849452a7d9cf22dc7d785be9e1b962678190193f7baf58e7cb35
|
|
BLAKE2b-256 checksum How to use checksums |
1ae5c25079c6df0295202b9e9e638bcbff809b670c7427e7b080f2ca9f4b2f86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|