Tuesday 31 October 2023

Pytesseract OSError: [WinError 740] The requested operation requires elevation

i am following this tutorial for recognizing text from a .png image with pytesseract python library but i got this error:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
Cell In[2], line 18
    14 pytesseract.tesseract_cmd = path_to_tesseract
    16 # Passing the image object to image_to_string() function
    17 # This function will extract the text from the image
---> 18 text = pytesseract.image_to_string(img)
    20 # Displaying the extracted text
    21 print(text[:-1])

File ~\anaconda3\lib\site-packages\pytesseract\pytesseract.py:423, in image_to_string(image, lang, config, nice, output_type, timeout)
    418 """
    419 Returns the result of a Tesseract OCR run on the provided image to string
    420 """
    421 args = [image, 'txt', lang, config, nice, timeout]
--> 423 return {
    424     Output.BYTES: lambda: run_and_get_output(*(args + [True])),
    425     Output.DICT: lambda: {'text': run_and_get_output(*args)},
    426     Output.STRING: lambda: run_and_get_output(*args),
    427 }[output_type]()

File ~\anaconda3\lib\site-packages\pytesseract\pytesseract.py:426, in image_to_string.<locals>.<lambda>()
    418 """
    419 Returns the result of a Tesseract OCR run on the provided image to string
    420 """
    421 args = [image, 'txt', lang, config, nice, timeout]
    423 return {
    424     Output.BYTES: lambda: run_and_get_output(*(args + [True])),
    425     Output.DICT: lambda: {'text': run_and_get_output(*args)},
--> 426     Output.STRING: lambda: run_and_get_output(*args),
    427 }[output_type]()

File ~\anaconda3\lib\site-packages\pytesseract\pytesseract.py:288, in run_and_get_output(image, extension, lang, config, nice, timeout, return_bytes)
    277 with save(image) as (temp_name, input_filename):
    278     kwargs = {
    279         'input_filename': input_filename,
    280         'output_filename_base': temp_name,
(...)
    285         'timeout': timeout,
    286     }
--> 288     run_tesseract(**kwargs)
    289     filename = f"{kwargs['output_filename_base']}{extsep}{extension}"
    290     with open(filename, 'rb') as output_file:

File ~\anaconda3\lib\site-packages\pytesseract\pytesseract.py:255, in run_tesseract(input_filename, output_filename_base, extension, lang, config, nice, timeout)
    252     cmd_args.append(extension)
    254 try:
--> 255     proc = subprocess.Popen(cmd_args, **subprocess_args())
    256 except OSError as e:
    257     if e.errno != ENOENT:

File ~\anaconda3\lib\subprocess.py:951, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
    947         if self.text_mode:
    948             self.stderr = io.TextIOWrapper(self.stderr,
    949                     encoding=encoding, errors=errors)
--> 951     self._execute_child(args, executable, preexec_fn, close_fds,
    952                         pass_fds, cwd, env,
    953                         startupinfo, creationflags, shell,
    954                         p2cread, p2cwrite,
    955                         c2pread, c2pwrite,
    956                         errread, errwrite,
    957                         restore_signals,
    958                         gid, gids, uid, umask,
    959                         start_new_session)
    960 except:
    961     # Cleanup if the child failed starting.
    962     for f in filter(None, (self.stdin, self.stdout, self.stderr)):

File ~\anaconda3\lib\subprocess.py:1420, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
1418 # Start the process
1419 try:
-> 1420     hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1421                              # no special security
1422                              None, None,
1423                              int(not close_fds),
1424                              creationflags,
1425                              env,
1426                              cwd,
1427                              startupinfo)
1428 finally:
1429     # Child is launched. Close the parent's copy of those pipe
1430     # handles that only the child should have open.  You need
(...)
1433     # pipe will not close when the child process exits and the
1434     # ReadFile will hang.
1435     self._close_pipe_fds(p2cread, p2cwrite,
1436                          c2pread, c2pwrite,
1437                          errread, errwrite)

OSError: [WinError 740] The requested operation requires elevation

is there any way to solve this problem?

this is my code:

from PIL import Image
from pytesseract import pytesseract

# Defining paths to tesseract.exe
# and the image we would be using
path_to_tesseract = r"tesseract.exe"
image_path = r"pdf2png/ActaConstitutiva0/ActaConstitutiva0-01.png"

# Opening the image & storing it in an image object
img = Image.open(image_path)

# Providing the tesseract executable
# location to pytesseract library
pytesseract.tesseract_cmd = path_to_tesseract

# Passing the image object to image_to_string() function
# This function will extract the text from the image
text = pytesseract.image_to_string(img)

# Displaying the extracted text
print(text[:-1])

i am installing tesseract.exe from here

i have python version 3.10.6 and pytesseract 0.3.10

i am running this code from jupyter notebook 6.4.1

i also tried following this answer from stack overflw but it didnt worked...



from Pytesseract OSError: [WinError 740] The requested operation requires elevation

No comments:

Post a Comment