核心结论:不推荐在新项目中使用 pytesser
pytesser 是一个非常古老(大约2009年发布)且不再维护的库,它依赖一个过时的OCR引擎 Tesseract OCR v2.x,在现代系统上安装困难,识别准确率极低,功能也极其有限。

对于2025年及以后的新项目,强烈推荐使用以下替代方案:
pytesseract+Tesseract OCR v5.x: 这是pytesser的现代、官方、功能强大的“精神续作”。pytesseract是一个 Python 封装器,它调用最新的 Tesseract OCR v5.x 引擎,准确率和稳定性都远超pytesser。- 基于深度学习的OCR库: 如
easyocr和paddleocr,它们在处理复杂场景、手写体、多语言等方面表现极其出色,是目前的主流选择。
pytesser 的安装(不推荐,仅作技术参考)
如果你因为某些特殊原因(例如维护一个老旧项目)必须安装 pytesser,可以按照以下步骤操作,这个过程可能会很曲折。
步骤 1: 安装 Tesseract OCR v2.x 引擎
pytesser 依赖特定版本的 Tesseract OCR v2.x,而不是目前主流的 v5.x,这是安装中最困难的一步。
在 Linux (Ubuntu/Debian) 上:

# 添加旧版本的软件源仓库 sudo apt-get update sudo apt-get install -y software-properties-common sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update # 安装 Tesseract OCR v2 (通常是 2.04 版本) sudo apt-get install tesseract-ocr
在 macOS 上 (使用 Homebrew):
Homebrew 的默认源可能没有旧版本,你需要手动下载安装。
# 1. 下载旧版本的 Tesseract # 你可以从这里找到: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/tesseract.rb # 或者直接下载预编译的二进制文件(从 Tesseract 的官方历史版本页面) # 2. 安装 # 假设你已经下载了 tesseract-2.0.0.tar.gz tar -xvzf tesseract-2.0.0.tar.gz cd tesseract-2.0.0 ./configure make sudo make install
在 Windows 上:
这是最麻烦的,你需要从 Tesseract OCR 的历史版本页面(Tesseract 3.02.02 是一个比较旧的稳定版,但比v2新,可能能工作)下载旧版本的安装程序(.exe 文件)。

- 下载安装程序。
- 运行安装,记住安装路径,
C:\Program Files (x86)\Tesseract-OCR。 - 在安装过程中,确保勾选了 "Add to PATH" 选项,否则后续会很麻烦。
步骤 2: 安装 Python 依赖
pip install pytesser
注意: pytesser 的依赖 PIL 已经被 Pillow 替代,如果遇到 ImportError,你需要安装 Pillow。
pip install Pillow
步骤 3: 验证安装
创建一个简单的 Python 脚本,尝试导入并使用。
# test_pytesser.py
from pytesser import *
try:
# 你需要一张名为 "test.png" 的图片
# 从这里下载一张测试图片: https://i.stack.imgur.com/8o2gM.png
image = Image.open('test.png')
text = image_to_string(image)
print("识别结果:", text)
except ImportError as e:
print(f"导入错误: {e}")
print("请确保 Tesseract OCR 已正确安装并添加到系统环境变量 PATH 中。")
except Exception as e:
print(f"发生错误: {e}")
运行脚本:
python test_pytesser.py
如果一切顺利,它会输出识别到的文本,但很大概率会遇到各种路径、版本不兼容等问题。
现代替代方案:pytesseract + Tesseract OCR v5.x (强烈推荐)
这是最接近 pytesser 原始思路的正确升级路径。
安装 Tesseract OCR v5.x 引擎
在 Linux (Ubuntu/Debian) 上:
sudo apt-get update sudo apt-get install tesseract-ocr # 如果需要识别中文,请安装中文语言包 sudo apt-get install tesseract-ocr-chi-sim # 简体中文 sudo apt-get install tesseract-ocr-chi-tra # 繁体中文
在 macOS 上 (使用 Homebrew):
brew install tesseract # 安装中文语言包 brew install tesseract-lang # 这会安装一个包含多种语言的包,包括中文
在 Windows 上:
- 访问 Tesseract at UB Mannheim 下载最新的稳定版安装程序。
- 运行安装程序,记住安装路径,
C:\Program Files\Tesseract-OCR。 - 重要: 在安装过程中,勾选 "Additional language data" 并选择你需要的语言包(如
chi_sim简体中文)。 - 确保 Tesseract 的路径(如
C:\Program Files\Tesseract-OCR)被添加到了系统的PATH环境变量中。
安装 Python 库 pytesseract 和 Pillow
pip install pytesseract Pillow
验证和使用 pytesseract
# test_pytesseract.py
import pytesseract
from PIL import Image
# (可选) 如果你没有将 Tesseract 添加到 PATH,需要指定其路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # Windows
# pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract' # macOS
try:
# 打开图片
image = Image.open('test.png')
# 进行OCR识别
# lang='chi_sim' 表示使用简体中文识别,如果图片是英文,可以省略或设为 'eng'
text = pytesseract.image_to_string(image, lang='eng')
print("识别结果:")
print(text)
except Exception as e:
print(f"发生错误: {e}")
print("请检查 Tesseract OCR 是否已安装并配置正确。")
运行脚本:
python test_pytesseract.py
更强大的替代方案:easyocr (开箱即用)
easyocr 的优点是安装简单,开箱即用,对中文等语言支持非常好,准确率高。
安装 easyocr
pip install easyocr
验证和使用 easyocr
# test_easyocr.py
import easyocr
# 创建一个 Reader 对象
# 第一次运行时会自动下载语言模型,需要一些时间
# 'ch_sim' 代表简体中文, 'en' 代表英文
reader = easyocr.Reader(['ch_sim', 'en'])
try:
# 读取图片
result = reader.readtext('test.png')
print("识别结果:")
for (bbox, text, prob) in result:
# bbox: 文本框坐标
# text: 识别出的文本
# prob: 置信度
print(f"文本: {text}, 置信度: {prob:.2f}")
except Exception as e:
print(f"发生错误: {e}")
总结对比
| 特性 | pytesser (旧) |
pytesseract (现代) |
easyocr (推荐) |
|---|---|---|---|
| 维护状态 | 已废弃 | 积极维护 | 积极维护 |
| 依赖引擎 | Tesseract OCR v2.x | Tesseract OCR v5.x | 基于深度学习 |
| 安装难度 | 极高 (难找旧版引擎) | 中等 (需安装Tesseract) | 非常简单 (pip install) |
| 识别准确率 | 极低 | 高 | 非常高 |
| 功能 | 基础 | 丰富 (支持多种输出格式) | 丰富 (支持检测、识别、置信度) |
| 中文支持 | 差 | 依赖语言包,良好 | 优秀 (开箱即用) |
| 推荐场景 | 无,仅维护旧项目 | 学习Tesseract或需要高度定制时 | 绝大多数新项目的首选 |
最终建议: 请直接跳过 pytesser,选择 pytesseract 或 easyocr 开始你的OCR项目,这将为你节省大量调试和兼容性问题的时间,并获得更好的效果。
