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

Python PIL权限错误求助:竞速图片OCR代码执行异常

解决OCR代码中的权限错误问题

我来帮你排查这个在竞速图片OCR时遇到的权限错误。先梳理下你的代码和报错情况:

你的OCR处理代码

from PIL import Image, ImageFilter, ImageEnhance
import pytesseract

im = Image.open("runners_1.jpg") # the second one
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save('temp2.jpg')
text=pytesseract.image_to_string(Image.open('temp2.jpg','r'),config="--psm 8")
print(text)

触发的权限错误

Traceback (most recent call last):
File "face_detection.py", line 27, in
text = pytesseract.image_to_string(Ima...

接下来分析几个可能的原因和对应的解决办法:

  • 文件读写权限不足
    你在保存临时文件temp2.jpg或者读取它的时候,当前用户没有对应目录的读写权限。比如如果脚本运行在系统级目录(像Windows的C:\Windows、Linux的/root),普通用户是没有写入权限的。

    • 解决办法:把脚本和图片移动到你有完全读写权限的目录(比如个人文档文件夹、用户主目录);或者在代码里明确指定有权限的保存路径,比如:
      # Windows示例
      im.save('C:/Users/YourName/Documents/temp2.jpg')
      # Linux/macOS示例
      im.save('/home/YourName/Documents/temp2.jpg')
      
  • Tesseract引擎的执行权限问题
    pytesseract依赖系统中的Tesseract OCR引擎,如果当前用户没有执行该程序的权限,也会触发权限错误。

    • 解决办法:
      1. 确认Tesseract的安装路径(Windows通常是C:\Program Files\Tesseract-OCR\tesseract.exe,Linux/macOS一般是/usr/bin/tesseract)。
      2. 在代码里手动指定Tesseract的路径,避免系统找不到或者权限受限:
        # Windows环境
        pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
        # Linux/macOS环境
        pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'
        
      3. Linux/macOS用户可以通过chmod +x /usr/bin/tesseract命令确保Tesseract程序有可执行权限。
  • 冗余的文件打开参数
    你的代码里用了Image.open('temp2.jpg','r'),其实PIL的Image.open默认就是只读模式,不需要额外传入'r'参数,虽然这不一定是权限错误的直接原因,但简化成Image.open('temp2.jpg')可以避免不必要的参数问题。

内容的提问来源于stack exchange,提问作者Syed Salman Kazmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:34:04