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

MacOS下Pytesseract临时文件丢失引发FileNotFoundError问题求助

pytesseract临时文件过早消失导致FileNotFoundError的解决办法

问题场景

运行以下代码时:

import cv2
import numpy as np
import pytesseract

pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'
img = cv2.imread('some.png')

h, w, c = img.shape
boxes = pytesseract.image_to_boxes(img) 

出现如下FileNotFoundError,提示临时生成的.box文件不存在:

File "/Users/thomaskilian/Documents/pytess.py", line 9, in <module>
  boxes = pytesseract.image_to_boxes(img)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytesseract/pytesseract.py", line 491, in image_to_boxes
  }[output_type]()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytesseract/pytesseract.py", line 490, in <lambda>
  Output.STRING: lambda: run_and_get_output(*args),
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytesseract/pytesseract.py", line 290, in run_and_get_output
  with open(filename, 'rb') as output_file:

builtins.FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/m3/26h8sdk11p7731577hpllh900000gn/T/tess_wayjir39.box'

追踪pytesseract源码发现,run_tesseract执行后临时文件仍存在,但执行open操作时文件已消失,推测是系统临时文件被过早清理导致。

解决办法

  • 指定自定义临时目录
    避开系统自动清理的临时路径,手动设置tempfile的临时目录,确保该目录不会被自动清理且当前用户有读写权限:

    import tempfile
    # 替换为你自己的自定义临时目录,比如~/my_temp
    tempfile.tempdir = "/Users/your_username/my_temp"
    
  • 升级pytesseract至最新版
    旧版本可能存在临时文件管理的bug,执行升级命令修复:

    pip install --upgrade pytesseract
    
  • 手动处理图像文件与临时文件
    绕开pytesseract内置的临时文件逻辑,自行保存图像并调用tesseract,完成后手动清理:

    import cv2
    import numpy as np
    import pytesseract
    import os
    
    pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'
    img = cv2.imread('some.png')
    
    # 手动保存图像到自定义临时路径
    temp_img = "/tmp/custom_temp_img.png"
    cv2.imwrite(temp_img, img)
    
    # 调用tesseract获取结果
    boxes = pytesseract.image_to_boxes(temp_img)
    
    # 清理临时文件
    os.remove(temp_img)
    
  • 调整系统临时文件清理策略
    检查macOS的临时文件清理服务(如tmutil或第三方清理工具),添加规则排除tess_*.box格式的文件,避免被误清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:38:28