Pytesseract: «Ошибка TesseractNotFound: tesseract не установлен или находится не на вашем пути», как мне это исправить?

Я пытаюсь запустить базовый и очень простой код на Python.

from PIL import Image
import pytesseract

im = Image.open("sample1.jpg")

text = pytesseract.image_to_string(im, lang = 'eng')

print(text)

Вот как это выглядит, я фактически установил tesseract для Windows через установщик. Я новичок в Python и не уверен, что делать дальше?

Любое руководство здесь было бы очень полезно. Я попытался перезапустить свое приложение Spyder, но безуспешно.

Что не работает? Можете ли вы добавить ошибки в вопросе?

Mooncrater 28.06.2018 21:02
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
95
1
200 335
26
Перейти к ответу Данный вопрос помечен как решенный

Ответы 26

Вам потребуется установить tesseract.

https://github.com/tesseract-ocr/tesseract/wiki

Ознакомьтесь с приведенной выше документацией по установке.

Привет, я уже пробовал это сделать, я установил с github с помощью установщика для Windows, но он все еще не работает. Не уверен, почему или что, я думаю, это имеет отношение к пути? Я снова проверю вики

Jed Bartlet 20.06.2018 18:18

От https://pypi.org/project/pytesseract/:

pytesseract.pytesseract.tesseract_cmd = '<full_path_to_your_tesseract_executable>'
# Include the above line, if you don't have tesseract executable in your PATH
# Example tesseract_cmd: 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'

Сначала вы должны установить двоичный файл:

В Linux

sudo apt-get update
sudo apt-get install libleptonica-dev 
sudo apt-get install tesseract-ocr tesseract-ocr-dev
sudo apt-get install libtesseract-dev

На Mac

brew install tesseract

В Windows

скачать двоичный файл из https://github.com/UB-Mannheim/tesseract/wiki. затем добавьте pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' в свой сценарий.

Затем вы должны установить пакет python с помощью pip:

pip install tesseract
pip install tesseract-ocr

Рекомендации: https://pypi.org/project/pytesseract/ (раздел УСТАНОВКА) и https://github.com/tesseract-ocr/tesseract/wiki#installation

Используйте следующую команду для установки tesseract

pip install tesseract

В окнах:

pip install tesseract

pip install tesseract-ocr

и проверьте файл, который хранится в вашем системном файле usr/appdata/local/programs/site-pakages/python/python36/lib/pytesseract/pytesseract.py и скомпилируйте файл

Обратите внимание, что это не работает в Windows, где вам нужно установить двоичный файл (из github.com/tesseract-ocr/tesseract/wiki) и добавить строку pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" для работы tesseract.

shahar_m 22.11.2018 15:40

вы можете установить этот пакет ... https://github.com/UB-Mannheim/tesseract/wiki после этого вы должны пойти по этому пути C: \ Program Files (x86) \ Tesseract-OCR \ tesseract.exe затем запустите файл tesseract. Думаю, это тебе поможет ...

Ответ принят как подходящий

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

1. Установите tesseract с помощью установщика Windows, доступного по адресу: https://github.com/UB-Mannheim/tesseract/wiki

2. Обратите внимание на путь тессеракта из установки. Путь установки по умолчанию на момент редактирования был: C:\Users\USER\AppData\Local\Tesseract-OCR. Он может измениться, поэтому проверьте путь установки.

3. pip install pytesseract

4. Перед вызовом image_to_string установите путь к тессеракту в скрипте:

pytesseract.pytesseract.tesseract_cmd = r'C:\Users\USER\AppData\Local\Tesseract-OCR\tesseract.exe'

Это сработало для меня! Если у кого-то еще возникла проблема с поиском папки «Tesseract-OCR», выполните поиск также в папке «C: \ Program Files \».

Shahriar Rahman Zahin 02.03.2020 07:35

Ты герой интернета

Artur Müller Romanov 07.03.2020 14:55

Пришлось перезагрузить компьютер, чтобы активировать настройку среды.

Barmaley 17.04.2020 21:06

Этот ответ лучше, чем документация, потому что путь к tesseract_cmd действительно должен указывать на tesseract.exe. Этого нет в документации.

Benji 17.07.2020 14:47

pytesseract.pytesseract.tesseract_cmd = r'C: \ Users \ USER \ AppData \ Local \ Tesseract-OCR \ tesseract.exe 'Этот ответ спас меня от важного крайнего срока на компьютерном зрении - проект OCR Большое спасибо @Nafeez Quraishi: - )

Vetrivel PS 27.08.2020 15:37

@Barmaley зачем перезагружать комп. Какую настройку среды вы имеете в виду? Я использую Windows и choco. По-видимому, настройка пути к среде не требуется. Кажется, работает из-за шага 4.

Timo 16.11.2020 18:57

@Timo, ответ может измениться. Вы можете установить этот путь непосредственно в Python или через системные переменные среды. Поэтому я выбрал последнее

Barmaley 18.11.2020 17:20

Если вы используете Textract lib и получаете ошибку 127, это может быть связано с отсутствием Tesseract. Следуйте инструкциям в этом ответе, но вместо того, чтобы указывать путь в скрипте (шаг pytesseract.pytesseract.tesseract_cmd), установите его как your environment variable

mrbTT 10.03.2021 14:09

Я получаю такую ​​ошибку в системе ubuntu, когда запускаю метод image_to_string. Как решить в случае linux?

Gary Chen 08.04.2021 18:51

@XueQing проверьте путь установки Tesseract-OCR в вашей системе. Замените этот путь на путь Windows, указанный в ответе, он должен работать.

Nafeez Quraishi 08.04.2021 20:36

Шаг 1:

Установите tesseract в вашу систему в соответствии с ОС. Последние установщики можно найти на https://github.com/UB-Mannheim/tesseract/wiki

Шаг 2: Установите следующие библиотеки зависимостей, используя: pip install pytesseract pip установить opencv-python pip install numpy

Шаг 3: Образец кода

import cv2
import numpy as np
import pytesseract
from PIL import Image
from pytesseract import image_to_string

# Path of working folder on Disk Replace with your working folder
src_path = "C:\\Users\\<user>\\PycharmProjects\\ImageToText\\input\\"
# If you don't have tesseract executable in your PATH, include the 
following:
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract- 
OCR/tesseract'
TESSDATA_PREFIX = 'C:/Program Files (x86)/Tesseract-OCR'

def get_string(img_path):
    # Read image with opencv
    img = cv2.imread(img_path)

    # Convert to gray
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # Apply dilation and erosion to remove some noise
    kernel = np.ones((1, 1), np.uint8)
    img = cv2.dilate(img, kernel, iterations=1)
    img = cv2.erode(img, kernel, iterations=1)

    # Write image after removed noise
    cv2.imwrite(src_path + "removed_noise.png", img)

    #  Apply threshold to get image with only black and white
    #img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2)

    # Write the image after apply opencv to do some ...
    cv2.imwrite(src_path + "thres.png", img)

    # Recognize text with tesseract for python
    result = pytesseract.image_to_string(Image.open(src_path + "thres.png"))

    # Remove template file
    #os.remove(temp)

    return result


print('--- Start recognize text from image ---')
print(get_string(src_path + "image.png") )

print("------ Done -------")

Только для Windows

1 - На вашем компьютере должен быть установлен Tesseract OCR.

get it from here. https://github.com/UB-Mannheim/tesseract/wiki

Download the suitable version.

2 - Добавьте путь Tesseract в вашу системную среду. т.е. редактировать системные переменные.

3 - Запустите pip install pytesseract и pip install tesseract

4 - Добавляйте эту строку в свой скрипт python каждый раз

pytesseract.pytesseract.tesseract_cmd = 'C:/OCR/Tesseract-OCR/tesseract.exe'  # your path may be different

5 - Запустите код.

Где найти путь для Linux?

Pallavi 26.08.2020 14:46

@Pallavi, это ответ Windows, поэтому, пожалуйста, не используйте Linux. Шаг 2 не нужен из-за 4.

Timo 16.11.2020 18:58

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

  1. В 32-битной системе добавьте эту строку после команд импорта.
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' 
  1. В 64-битной системе вместо этого добавьте эту строку.
 pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'

На Mac вы можете установить его, как показано ниже. У меня это работает.

brew install tesseract
# {Windows 10 instructions}
# before you use the script you need to install the dependence
# 1. download the tesseract from the official link:
#   https://github.com/UB-Mannheim/tesseract/wiki
# 2. install the tesseract
#   i chosed this path
#       *replace the user string in the below path with you name of user that you are using in your current machine
#       C:\Users\user\AppData\Local\Tesseract-OCR\
# 3. Install the  pillow for your python version
# * the best way for me is to install is this form(i'am using python3.7 version and in my CMD i run this version of python by     typing py -3.7):
# * if you are using another version of python first look how you start the python from you CMD
# * for some machine the run of python from the CMD is different
    # [examples]
    # =================================
    # PYTHON VERSION 3.7
    # python
    # python3.7
    # python -3.7
    # python 3.7
    # python3
    # python -3
    # python 3
    # py3.7
    # py -3.7
    # py 3.7
    # py3
    # py -3
    # py 3
    # PYTHON VERSION 3.6
    # python
    # python3.6
    # python -3.6
    # python 3.6
    # python3
    # python -3
    # python 3
    # py3.6
    # py -3.6
    # py 3.6
    # py3
    # py -3
    # py 3
    # PYTHON VERSION 2.7
    # python
    # python2.7
    # python -2.7
    # python 2.7
    # python2
    # python -2
    # python 2
    # py2.7
    # py -2.7
    # py 2.7
    # py2
    # py -2
    # py 2
    # ================================
# we are using pip to install the dependences
# because for me i start the python version 3.7 with the following line 
    # py -3.7
# open the CMD in windows machine and type the following line:
    # py -3.7 -m pip install pillow
# 4. Install the  pytesseract and tesseract for your python version
# * the best way for me is to install is this form(i'am using python3.7 version and in my CMD i run this version of python by     typing py -3.7):
# we are using pip to install the dependences
# open the CMD in windows machine and type the following lines:
    # py -3.7 -m pip install pytesseract
    # py -3.7 -m pip install tesseract


#!/usr/bin/python
from PIL import Image
import pytesseract
import os
import getpass

def extract_text_from_image(image_file_name_arg):

    # IMPORTANT
    # if you have followed my instructions to install this dependence in above text explanatin
    # for my machine is
    # if you don't put the right path for tesseract.exe the script will not work
    username = getpass.getuser()
    # here above line get the username for your machine automatically
    tesseract_exe_path_installation = "C:\\Users\\"+username+"\\AppData\\Local\\Tesseract-OCR\\tesseract.exe"
    pytesseract.pytesseract.tesseract_cmd=tesseract_exe_path_installation

# specify the direction of your image files manually or use line bellow if the images are in the script directory in     folder  images
    # image_dir = "D:\\GIT\\ai_example\\extract_text_from_image\\images"
    image_dir=os.getcwd()+"\\images"
    dir_seperator = "\\"
    image_file_name=image_file_name_arg
    # if your image are in different format change the extension(ex. ".png")
    image_ext = ".jpg"
    image_path_dir=image_dir+dir_seperator+image_file_name+image_ext

    print("============================================================================ = ")
    print("image used is in the following path dir:")
    print("\t"+image_path_dir)
    print("============================================================================ = ")

    img=Image.open(image_path_dir)
    text=pytesseract.image_to_string(img, lang = "eng")
    print(text)

# change the name "image_1" whith the name without extension for your image name
# image_file_name_arg = "image_1"
image_file_name_arg = "image_2"
# image_file_name_arg = "image_3"
# image_file_name_arg = "image_4"
# image_file_name_arg = "image_5"
extract_text_from_image(image_file_name_arg)

# ==================================
# CREATED BY: SHERIFI
# e-mail: [email protected]
# git-link for script: https://github.com/sherifi/ai_example.git
# ==================================

Можете ли вы добавить текстовое описание к опубликованному вами фрагменту?

Dmytro Chasovskyi 18.07.2019 14:18

Я добавил текст во фрагмент для более удобного доступа и полного ответа

Sherifi 19.07.2019 16:01
For Ubuntu 18.04

Если вы получаете сообщение об ошибке

 tesseract is not installed or it's not in your path

 and 

 OSError: [Errno 12] Cannot allocate memory

Это может быть проблема с выделением памяти подкачки

Вы можете проверить этот ответ, выделив больше памяти подкачки Надеюсь, что это поможет :)

https://askubuntu.com/questions/920595/fallocate-fallocate-failed-text-file-busy-in-ubuntu-17-04?answertab=active#tab-top

В 64-разрядной версии Windows просто добавьте следующее в переменную среды PATH: "C:\Program Files\Tesseract-OCR" и будет работать.

Я могу решить эту проблему, обновив переменную tesseract_cmd, указав путь bin / tesseract в файле pytesseract.py

У меня была такая же проблема в Windows. Я попытался обновить переменные среды для пути к tesseract, но это не сработало.

Что сработало для меня, так это изменить pytesseract.py, который можно найти по пути C:\Program Files\Python37\Lib\site-packages\pytesseract или обычно в C:\Users\YOUR USER\APPDATA\Python.

Я изменил одну строку, как показано ниже:

#tesseract_cmd = 'tesseract' 
#tesseract_cmd = 'C:\Program Files\Tesseract-OCR\\tesseract.exe'

Обратите внимание, что мне пришлось поставить дополнительный \ перед tesseract, поскольку Python интерпретировал то же, что и \t, и вы получите следующее сообщение об ошибке:

pytesseract.pytesseract.TesseractNotFoundError: C:\Program Files\Tesseract-OCR esseract.exe is not installed or it's not in your path

Эта ошибка возникает из-за того, что на вашем компьютере не установлен tesseract.

Если вы используете Ubuntu, установите tesseract, используя следующую команду:

sudo apt-get install tesseract-ocr

Для Mac:

brew install tesseract

это сработало для меня. пришлось сделать это после установки pytesseract

roronoa 18.01.2021 15:18

Возможно, это происходит потому, что, даже если Tesseract установлен правильно, вы не установили свой язык, как это было в моем случае. К счастью, это очень легко исправить, и мне даже не пришлось возиться с tesseract_cmd.

sudo apt-get install tesseract-ocr -y
sudo apt-get install tesseract-ocr-spa -y
tesseract --list-langs

Обратите внимание, что во второй строке мы указали -spa для испанского языка.

Если установка прошла успешно, вы должны получить список доступных языков, например:

List of available languages (3):
eng
osd
spa

Я нашел это на это сообщение в блоге (испанский). Также есть пост для установка испанского языка в Windows (видимо, не так просто).

Примечание: поскольку в вопросе используется lang = 'eng', вероятно, это не ответ в данном конкретном случае. Но такая же ошибка может произойти и в этой другой ситуации, поэтому я разместил ответ здесь.

На эту проблему уже есть много хороших ответов, но я хотел бы поделиться замечательным сайтом, на который я наткнулся, когда не смог решить «Ошибка TesseractNotFound: tesseract не установлен или он не на вашем пути». Пожалуйста, обратитесь на этот сайт: https://www.thetopsites.net/article/50655738.shtml

Я понял, что получил эту ошибку, потому что я установил питессеракт с помощью pip, но забыл установить двоичный файл. Вероятно, на вашем компьютере отсутствует tesseract-ocr. Ознакомьтесь с инструкциями по установке здесь: https://github.com/tesseract-ocr/tesseract/wiki

На Mac, вы можете просто установить с помощью homebrew:

brew install tesseract

После этого все должно работать нормально!

В среде ОС Windows 10, у меня работает следующий метод:

  1. Перейдите в эта ссылка, загрузите tesseract и установите его. Версия для Windows доступна здесь: https://github.com/UB-Mannheim/tesseract/wiki

  2. Найдите файл скрипта pytesseract.py в папке C: \ Users \ User \ Anaconda3 \ Lib \ site-packages \ pytesseract и откройте его. Измените следующий код с tesseract_cmd = 'тессеракт' на: tesseract_cmd = 'C: / Программные файлы (x86) /Tesseract-OCR/tesseract.exe' (Это путь, по которому вы устанавливаете Tesseract-OCR, поэтому проверьте, где вы его устанавливаете, и, соответственно, обновите путь)

  3. Вам также может потребоваться добавить переменную среды C: / Program Files (x86) / Tesseract-OCR /

Надеюсь, это сработает для вас!

Только для пользователей Windows:

Установите tesseract, используя:

pip install tesseract

а затем добавьте эту строку в свой код, обратите внимание на "\"

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

Решение для UBUNTU Сработало у меня:

Установлен tesseract в ubuntu по ссылке ниже

https://medium.com/quantrium-tech/installing-tesseract-4-on-ubuntu-18-04-b6fcd0cbd78f

Позже добавлен язык traindata в tessdata, перейдя по ссылке ниже

Ошибка запуска Tesseract

Похоже, проблема связана с последней версией модуля pip pytesseract = 0.3.7. Я понизил его до pytesseract = 0.3.6 и не вижу ошибки.

Для меня это сработало, просто установив tesseract с помощью conda.

conda install -c conda-forge tesseract

Для Windows простыми шагами:

  1. Скачать версию для Windows с сайта https://github.com/UB-Mannheim/tesseract/wiki

  2. Установить

  3. Напишите следующее в вашем .py файле (проверьте установленное место)

     pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
     img_text = pytesseract.image_to_string(Image.open(filename))
    

для меня это сработало, поставив одинарную кавычку

pytesseract.pytesseract.tesseract_cmd =r'C:/Program Files/Tesseract-OCR/tesseract.exe'

на самом деле вставка в двойные кавычки автоматически вставляла нежелательный символ

Для распространения Linux (Ubuntu)

пытаться

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev

Другие вопросы по теме