import pytesseract from PIL import Image tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' def demo(): # 打开要识别的图片 image = Image.open(r'C:\Program Files\背书软件\tesseract学习图片.png') # 使用pytesseract调用image_to_string方法进行识别,传入要识别的图片,lang='chi_sim'是设置为中文识别, text = pytesseract.image_to_string(image, lang='chi_sim') # 输入所识别的文字 print(text) if __name__ == '__main__': demo() 这行代码报错如下:"C:\Program Files\背书软件\.venv\Scripts\python.exe" "C:\Program Files\背书软件\tesseract-orc.py" Traceback (most recent call last): File "C:\Program Files\背书软件\.venv\Lib\site-packages\pytesseract\pytesseract.py", line 275, in run_tesseract proc = subprocess.Popen(cmd_args, **subprocess_args()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\python\Lib\subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\python\Lib\subprocess.py", line 1538, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 2] 系统找不到指定的文件。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\背书软件\tesseract-orc.py", line 16, in <module> demo() File "C:\Program Files\背书软件\tesseract-orc.py", line 9, in demo text = pytesseract.image_to_string(image, lang='chi_sim') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\背书软件\.venv\Lib\site-packages\pytesseract\pytesseract.py", line 486, in image_to_string return { ^ File "C:\Program Files\背书软件\.venv\Lib\site-packages\pytesseract\pytesseract.py", line 489, in <lambda> Output.STRING: lambda: run_and_get_output(*args), ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\背书软件\.venv\Lib\site-packages\pytesseract\pytesseract.py", line 352, in run_and_get_output run_tesseract(**kwar
时间: 2025-03-15 22:20:05 浏览: 70
### 解决 Pytesseract 在 Windows 上运行时出现 `FileNotFoundError` 的问题
当在 Windows 平台上使用 Pytesseract 时,如果遇到 `FileNotFoundError: 系统找不到指定的文件` 错误,通常是因为未正确配置 Tesseract OCR 的路径或者缺少必要的环境变量设置。
#### 1. 修改 `pytesseract.py` 中的 `tesseract_cmd`
可以通过修改 Pytesseract 库中的 `pytesseract.py` 文件来解决问题。默认情况下,Pytesseract 使用的是预设的 Tesseract 安装路径,但如果实际安装位置不同,则需要手动调整此路径。
例如,在本地计算机上,假设 Tesseract 已经被安装到了 `D:\Program Files\Tesseract-OCR` 路径下,则可以将 `tesseract_cmd` 设置为以下内容:
```python
tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
```
这一步骤的具体操作方法是在 Python 安装目录下的 `Lib/site-packages/pytesseract/` 找到 `pytesseract.py` 文件并打开它,找到其中定义 `tesseract_cmd` 的部分,并将其更改为上述路径[^1]。
#### 2. 添加 Tesseract 到系统的 PATH 环境变量
为了让操作系统能够识别 Tesseract 命令行工具的位置,建议将 Tesseract 的安装路径添加至系统的 PATH 环境变量中。这样不仅可以简化程序调用流程,还可以避免因路径不匹配而引发的一系列错误。
对于安装路径为 `D:\Program Files (x86)\Tesseract-OCR` 的情况,可以直接将该路径追加到系统环境变量 PATH 当中[^5]。
#### 3. 配置 TESSDATA_PREFIX 环境变量
另一个常见问题是由于缺失了名为 `TESSDATA_PREFIX` 的环境变量而导致的语言包加载失败。如果没有正确设定这个变量,即使已经成功指定了 Tesseract 可执行文件的位置,仍然可能收到类似于 “Failed loading language 'eng'” 这样的提示信息。因此,应该确保设置了指向 tessdata 数据夹的有效路径作为 `TESSDATA_PREFIX` 的值。例如,如果你的数据存储于 `C:\Program Files (x86)\Tesseract-OCR\tessdata` 下面的话,那么就应当把这条记录加入用户的环境变量列表里去[^2]。
#### 示例代码片段
下面提供了一个简单的例子展示如何通过编程方式动态更改这些参数:
```python
import os
from PIL import Image
import pytesseract
# 动态更新环境变量
os.environ['PATH'] += ';D:\\Program Files\\Tesseract-OCR'
os.environ['TESSDATA_PREFIX'] = 'D:\\Program Files\\Tesseract-OCR\\tessdata'
# 加载图片对象
img = Image.open('example.png')
# 将 tesseract_cmd 设定为你自己的绝对路径
pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
text = pytesseract.image_to_string(img)
print(text)
```
以上脚本不仅重新声明了一次命令行接口地址还额外补充进了两个重要的全局属性——一个是扩展搜索范围以便定位可执行档;另外则是明确定义好训练资料所在之处从而规避潜在风险[^4]。
---
###
阅读全文
相关推荐



















