pytesseract PermissionError: [WinError 5] 拒绝访问

当遇到`pytesseract PermissionError: [WinError 5] 拒绝访问`的错误时,可以尝试以管理员身份运行程序,检查文件和目录权限,移动pytesseract安装位置,设置语言数据路径,或确认Tesseract OCR引擎已正确安装和更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Traceback (most recent call last):
      File "C:\Python37\lib\site-packages\pytesseract\pytesseract.py", line 185, in run_tesseract
        proc = subprocess.Popen(cmd_args, **subprocess_args())
      File "C:\Python37\lib\subprocess.py", line 756, in __init__
        restore_signals, start_new_session)
      File "C:\Python37\lib\subprocess.py", line 1155, in _execute_child
        startupinfo)
    PermissionError: [WinError 5] 拒绝访问。
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "G:\360MoveData\Users\ASUS\Desktop\ocr.py", line 27, in <module>
        cleanFile(r"D:\ocr\path.png",r"D:\ocr\newpath.png")
      File "G:\360MoveData\Users\ASUS\Desktop\ocr.py", line 18, in cleanFile
        
### 解决 `pytesseract FileNotFoundError [WinError 2]` 和 `PermissionError [WinError 5]` 的综合方案 在 Windows 平台上运行 Python 3.12 使用 `pytesseract` 时,可能会遇到两种常见的错误:`FileNotFoundError: [WinError 2] 系统找不到指定的文件` 和 `PermissionError: [WinError 5] 拒绝访问`。以下是针对这两种问题的详细分析与解决方案。 #### 错误原因解析 - **`FileNotFoundError: [WinError 2]`**: 此错误表明系统无法找到 Tesseract OCR 的可执行文件 (`tesseract.exe`)。这通常是由于未正确配置其路径所致。 - **`PermissionError: [WinError 5]`**: 这种错误表示程序试图访问某个资源但权限不足。常见于尝试写入受保护目录或调用受限进程的情况下。 --- ### 方案一:解决 `FileNotFoundError: [WinError 2]` #### 方法 A:显式设置 Tesseract 可执行文件路径 通过编程方式明确告知 `pytesseract` 去哪里查找 Tesseract 安装位置。 ```python import pytesseract # 显式指定 Tesseract 的安装路径 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' ``` 此方法绕过了依赖环境变量的方式,直接指定了 Tesseract 的绝对路径[^1]。 #### 方法 B:更新系统 PATH 环境变量 另一种更通用的方法是将 Tesseract 的安装目录加入系统的 PATH 环境变量中。这样无论何时启动新终端都会自动继承这一配置。 步骤如下: 1. 打开“控制面板 -> 系统和安全 -> 系统 -> 高级系统设置”; 2. 单击“环境变量”,在“系统变量”区域找到并选中 `Path` 后点击“编辑”按钮; 3. 添加新的条目,输入 Tesseract 的根目录(例如 `C:\Program Files\Tesseract-OCR`); 4. 点击确定保存更改,并重新启动任何已打开的应用程序以应用这些变化。 完成之后不需要额外修改代码即可正常使用[^2]。 --- ### 方案二:处理 `PermissionError: [WinError 5]` #### 方法 C:检查管理员权限 确保正在使用的命令提示符或者 IDE 是以管理员身份运行的。右键单击快捷方式选择“以管理员身份运行”。 #### 方法 D:调整目标文件夹的安全属性 如果仍然存在问题,则可能是特定文件夹设置了严格的访问限制。可以通过以下手段放宽约束条件: 1. 导航到引发冲突的目标文件所在磁盘分区(比如 C:\Windows\System32 或者其他敏感区); 2. 查看该文件夹的属性对话框下的安全性标签页; 3. 给当前登录账户授予完全控制权或其他适当级别许可。 另外一种可能性来源于防病毒软件干扰,请暂时禁用它们再试一次看看效果如何改变[^3]。 --- ### 测试修复后的功能是否恢复正常 下面给出了一段简单的测试脚本来验证一切运作良好与否: ```python from PIL import Image import pytesseract try: # 如果之前已经设定了全局变量则无需重复声明 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' img_path = 'test_image.png' # 替换为实际图像的位置 image = Image.open(img_path) result_text = pytesseract.image_to_string(image) print("识别结果:", result_text.strip()) except Exception as e: print(f"发生错误: {e}") ``` 只要按照前面提到的办法逐一排查下来的话,理论上就不会再次碰到类似的麻烦了。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ROOOOOOM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值