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

使用pytesseract与PIL提取图片文本时遇PermissionError:文件访问被拒绝

解决pytesseract image_to_string的PermissionError(Access Denied)问题

以下是针对该问题的具体排查和解决步骤:

  • 指定Tesseract OCR的完整路径
    pytesseract默认可能无法找到tesseract.exe,或者该程序的执行权限受限。在代码中显式指定其路径:

    import pytesseract
    from PIL import Image
    
    # 替换为你的tesseract.exe实际安装路径
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    print(pytesseract.image_to_string(Image.open("screenshot.png")))
    
  • 检查图片文件的读取权限
    右键screenshot.png → 属性 → 安全选项卡,确认当前登录用户拥有该文件的读取权限,如果没有则添加对应权限。

  • 验证临时目录的读写权限
    pytesseract运行时会生成临时文件,默认使用系统临时目录(如C:\Users\<你的用户名>\AppData\Local\Temp)。确保该目录对当前用户开放读写权限。若权限不足,可手动指定自定义临时目录:

    import pytesseract
    from PIL import Image
    import tempfile
    import os
    
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    # 替换为你有读写权限的自定义目录
    custom_temp_dir = r'D:\MyTemp'
    os.makedirs(custom_temp_dir, exist_ok=True)
    
    with tempfile.TemporaryDirectory(dir=custom_temp_dir) as temp_dir:
        os.environ['TEMP'] = temp_dir
        print(pytesseract.image_to_string(Image.open("screenshot.png")))
    
  • 调整Tesseract的安装目录
    若Tesseract安装在系统保护目录(如C:\Program Files),普通用户可能缺乏执行权限。尝试将Tesseract卸载后重新安装到非系统目录(如D:\Tesseract-OCR),并更新代码中的路径配置。

  • 排查杀毒软件/防火墙拦截
    部分杀毒软件或防火墙会误判tesseract.exe为风险程序并拦截其运行。暂时关闭杀毒软件测试,或将tesseract.exe添加到信任列表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:16:00