WinError 5: Доступ запрещен PyTesseract

Я знаю, что на этот вопрос уже был дан ответ на этом сайте, однако ни одно из решений, которые я искал в Интернете, не сработало. Вот что я пробовал:

  • Предоставление всех разрешений моему файлу python
  • Изменение переменной PATH, чтобы она указывала на мою папку tesseract
  • Запуск IDLE от имени администратора, а затем выполнение файла оттуда

Эта ошибка очень беспокоит меня сейчас, и я не могу двигаться дальше из-за нее.

Вот мой код, если это поможет:

import pytesseract
import sys
import argparse
try:
    import Image
except ImportError:
    from PIL import Image
from subprocess import check_output
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR'
c=pytesseract.image_to_string(Image.open('img.png'))
print(c)

Проследить:

Traceback (most recent call last):
  File "C:\Users\Hp\Desktop\bot.py", line 12, in <module>
    c=pytesseract.image_to_string(Image.open('captcha.png'))
  File "C:\Python\lib\site-packages\pytesseract\pytesseract.py", line 122, in image_to_string
config=config)
  File "C:\Python\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract
proc = subprocess.Popen(command, stderr=subprocess.PIPE)
  File "C:\Python\lib\subprocess.py", line 707, in __init__
restore_signals, start_new_session)
  File "C:\Python\lib\subprocess.py", line 992, in _execute_child
startupinfo)
PermissionError: [WinError 5] Accès refusé

person Oussama Boussif    schedule 01.09.2017    source источник
comment
Может ли кто-нибудь взглянуть на это и помочь мне с этой проблемой?   -  person Oussama Boussif    schedule 02.09.2017
comment
Вы можете предоставить полный Traceback, который у вас есть?   -  person Fruch    schedule 05.09.2017
comment
@Fruch У меня их нет, потому что я переустановил Python в другом месте. Причина, по которой я сделал это, заключалась в том, что после исследования Traceback и моих папок я обнаружил, что папка python находится внутри защищенной папки «Hp», поэтому я решил переустановить ее в другом месте (диск C) в надежде решить эту проблему. .   -  person Oussama Boussif    schedule 06.09.2017
comment
Попробуйте использовать cmd и запустите его от имени администратора, а затем перейдите в каталог, где находится файл png.   -  person Marichyasana    schedule 06.09.2017
comment
@Marichyasana Уже пробовал, не работает.   -  person Oussama Boussif    schedule 06.09.2017
comment
А если войти под учетной записью администратора? Есть некоторые отличия от использования администратора из учетной записи пользователя.   -  person Marichyasana    schedule 06.09.2017
comment
@Marichyasana Все, что у меня есть, это одна учетная запись.   -  person Oussama Boussif    schedule 06.09.2017
comment
c=pytesseract.image_to_string(Image.open(os.getcwd()+'\\'+'captcha.png')) если изображение находится в одном каталоге со скриптом !   -  person dsgdfg    schedule 08.09.2017


Ответы (4)


Я подозреваю несколько вещей, хотя ни в чем не уверен.

Первое и самое очевидное: путь к Тессеракту неполный. Это должно быть что-то вроде:

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'

Я считаю, что ваш путь указывает на каталог/папку, а не на исполняемый файл, хотя только вы можете это подтвердить. Дайте мне знать, если это неверно, я также вижу кое-что еще, что сначала кажется неправильным, но требует дальнейшего изучения.

person 0xc0de    schedule 08.09.2017
comment
Если это сработало, и если ваша установка свежая и по умолчанию, полное удаление этой строки из вашего кода тоже должно работать. - person 0xc0de; 08.09.2017
comment
когда я включаю исполняемый файл, он порождает ошибку winerror 2 - person Oussama Boussif; 13.09.2017
comment
@OussamaBoussif вам действительно нужно рассказать об этом подробнее. Эти 3 слова не приведут вас ни к какому решению. - person 0xc0de; 13.09.2017

Я столкнулся с той же проблемой, и я исправил ее, как сказал 0xc0de, измените строку ниже:

pytesseract.pytesseract.tesseract_cmd=r"C:\MyApps\Tesseract-ocr\"

to:

pytesseract.pytesseract.tesseract_cmd="C:\\MyApps\\Tesseract-ocr\\tesseract.exe"
person Fatalerr    schedule 19.08.2020

Используйте это, чтобы прочитать путь tesseract, а также убедитесь, что вы установили Tesseract-OCR.

pytesseract.pytesseract.tesseract_cmd = r'C:\\\Program Files (x86)\\\Tesseract-OCR\\\tesseract.exe'

всегда используя двойной \\ вместо одиночного "\"

person Manish Halder    schedule 30.07.2018
comment
зачем нам нужно включать tesseract.exe? - person DonCarleone; 09.03.2021
comment
@DonCarleone на всякий случай, если у кого-то возникнет такой же вопрос. Pythesseract — это оболочка Python для Google Thesseract, поэтому у вас должны быть оба. - person José González; 24.04.2021

Вам нужно установить tesseract отдельно. Я предоставляю ссылку, откуда вы должны установить

https://github.com/UB-Mannheim/tesseract/wiki

tesseract-ocr-w32-setup-v5.0.0-alpha.20201127.exe (32-разрядная версия) и tesseract-ocr-w64-setup-v5.0.0-alpha.20201127.exe (64-разрядная версия) соответственно.

выберите здесь в соответствии с конфигурацией вашей системы. у большинства из нас 64 бит. так выбери это.

Устанавливайте файл очень осторожно. Я бы предложил сделать это на отдельном диске, отличном от c. выберите путь, по которому вы установили файл tesseract.exe. и вставьте его в pytesseract.pytesseract.tesseract_cmd

смотри код...

import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'E:/OCR/tesseract_install/tesseract.exe'
img = cv2.imread('E:/OCR/example1.png')
# to see the image below codes are there
cv2.imshow('sampleimage',img)
#enter any key to destroy the image window opened due to previous line code
cv2.waitKey(0)
cv2.destroyAllWindows()
#convert image to text using tesseract
text = pytesseract.image_to_string(img)
print(text)
person Tarun Dutta    schedule 22.02.2021