You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包含Tesseract的exe时,临时目录PDF生成失败求助

解决PyInstaller打包pytesseract.image_to_pdf_or_hocr生成PDF失败的问题

核心问题分析

直接运行代码正常,但打包为exe后无法生成临时PDF,本质是打包后的Tesseract环境配置不完整或临时目录权限/路径匹配异常,导致tesseract.exe无法正常生成输出文件,进而触发FileNotFoundError。

具体解决方案

1. 强制指定打包后Tesseract的执行路径

PyInstaller会将spec中配置的文件释放到临时目录(通过sys._MEIPASS访问),但pytesseract默认会从系统PATH查找tesseract.exe,必须手动指定路径:

import sys
import os
import pytesseract

# 获取Tesseract的实际路径
def get_tesseract_executable():
    if hasattr(sys, '_MEIPASS'):
        # 打包后:临时释放目录下的TESSEERACT-OCR文件夹(注意spec中的拼写是TESSEERACT,多一个E)
        return os.path.join(sys._MEIPASS, 'TESSEERACT-OCR', 'tesseract.exe')
    else:
        # 开发环境:本地Tesseract路径
        return r'你的本地Tesseract路径\tesseract.exe'

# 覆盖pytesseract的默认路径
pytesseract.pytesseract.tesseract_cmd = get_tesseract_executable()

注意:必须和spec文件中配置的Tesseract文件夹名称完全一致(你的spec里写的是TESSEERACT-OCR,不是TESSERACT-OCR,别写错)。

2. 修复Tesseract文件的打包规则

你的spec文件中仅打包了Tesseract根目录的*.*和部分子目录,可能遗漏了关键依赖(如bin目录下的DLL文件),修改binaries配置为递归匹配所有文件:

binaries=[
    # 其他poppler配置保持不变
    ('Source/TESSEERACT-OCR/**/*', 'TESSEERACT-OCR'),  # 递归打包所有子目录文件
],

这样能确保所有Tesseract依赖的DLL、配置文件都被正确打包并释放。

3. 确保临时目录可写入

部分杀毒软件或系统权限会限制exe写入默认临时目录,可手动指定自定义临时目录并设置环境变量:

import tempfile
import os

# 创建可写的临时目录
custom_temp_dir = tempfile.mkdtemp()
# 让tesseract使用这个目录生成临时文件
os.environ['TMP'] = custom_temp_dir
os.environ['TEMP'] = custom_temp_dir

同时检查默认临时目录C:\Users\PAVANS~1\AppData\Local\Temp的写入权限,确保当前用户拥有读写权限。

4. 调试Tesseract的执行命令

添加调试代码,打印tesseract的执行命令和输出,定位具体错误:

from pytesseract.pytesseract import build_tesseract_cmd
import subprocess

# 构造测试命令(替换为你的实际图片路径)
test_image = 'test.png'
cmd = build_tesseract_cmd(test_image, 'output_temp', extension='pdf')
print(f"Tesseract执行命令: {cmd}")

# 手动执行命令并捕获输出
result = subprocess.run(cmd, capture_output=True, text=True)
print(f"标准输出: {result.stdout}")
print(f"错误输出: {result.stderr}")

打包后运行exe,查看控制台输出,若tesseract报错“找不到依赖DLL”,说明打包时遗漏了文件;若报错“权限不足”,则需要调整临时目录权限。


内容的提问来源于stack exchange,提问作者Pavan Sai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:15:48