2017-03-23 2 views
2

So versuche ich derzeit, Tesseract (Pytasseract Wrapper) in Python 3.5 zu verwenden. Jetzt bin ich im Büro und meine Vermutung ist, dass einige doof Berechtigungen nicht gesetzt sind und deshalb bekomme ich diesen Fehler, wenn ich versuche, einen ziemlich einfachen Code auszuführen. Jetzt habe ich Berechtigungen auf diesem Computer und kann Dateiberechtigungen ändern ... irgendeine Idee, was ich tun kann, um dies zu erreichen?Python Fehler: PermissionError: [WinError 5] Zugriff verweigert

Wenn überhaupt, wird es mir helfen, mich um Systemberechtigungen im Allgemeinen zu wickeln, wie ich mit verschiedenen Betriebssystemen arbeite.

import pytesseract 
from PIL import Image 
test = Image.open('test.png') 
print (pytesseract.image_to_string(test)) 


    Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32 
Type "copyright", "credits" or "license()" for more information. 
>>> 
========= RESTART: C:\Users\dmartin\CheckScanScript\TextFromImage.py ========= 
Traceback (most recent call last): 
    File "C:\Users\dmartin\CheckScanScript\TextFromImage.py", line 4, in <module> 
    print (pytesseract.image_to_string(test)) 
    File "C:\Users\dmartin\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string 
    config=config) 
    File "C:\Users\dmartin\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract 
    stderr=subprocess.PIPE) 
    File "C:\Users\dmartin\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 950, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Users\dmartin\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 1220, in _execute_child 
    startupinfo) 
PermissionError: [WinError 5] Access is denied 
+0

nicht sicher, wie Sie das Programm ausführen, aber versuchen Sie cmd.exe „Ausführen als Admin "(oder ähnlich). Normalerweise ist das eine Rechtsklick-Menüoption von Windows Explorer, aber es variiert je nach Windows-Version. – cdarke

+0

pytasseract versucht [testeract ausführen] (https://github.com/madmaze/pyterseract/blob/v0.1.6/src/pytesseract.py#L59). Öffnen Sie eine Eingabeaufforderung und überprüfen Sie 'where tesseract', um zu sehen, ob Sie es installiert haben oder nicht und sein Verzeichnis auf' PATH' gesetzt ist. Wenn ja, dann versuche 'tesseract'. – eryksun

Antwort

1

Ich hatte das gleiche Problem. Ich habe das gelöst. Zuerst müssen Sie den Pfad C: \ Programme (x86) \ Tesseract-OCR \ in Umgebungsvariablen hinzufügen. Zweitens habe ich festgestellt, wenn mein Code in differen Festplatte, kann Programm nicht Sprache von Ordner Tessdata laden. Also verschiebe ich meinen Code von Disk D nach Disk C und es funktioniert endlich.

+0

Ich hatte meine Py-Code auf D: \, setzen vollen Besitz auf den Ordner und/oder deaktivieren Sie die Nur-Lese-Box die SSD jedes Mal degradieren mit 2k-Dateien löste es nur für eine Sitzung (ein Neustart hat es wieder versaut). Dies scheint eine gute sofortige Lösung (fand nicht die Zeit zum Neustart und bestätigen Sie noch) – Mash

0

Ich löste es durch die Erlaubnis, die Datei von Code:

import stat 
import os 

os.chmod("file",stat.S_IRUSR|stat.S_IRGRP|stat.S_IROTH|stat.S_IXUSR|stat.S_IRUSR|stat.S_IWUSR|stat.S_IWGRP|stat.S_IXGRP) 
os.remove("file") 
1

ich hatte das gleiche Problem, und ich beschlossen, es von IDLE als Administrator ausgeführt wird und dann die .py Datei durch IDLE öffnen.

0

Run Python oder Python IDE als Admin und Set tesseract_cmd, pytesseract.pytesseract.tesseract_cmd, TESSDATA_PREFIX und tessdata_dir_config wie folgt:

from PIL import Image 
import pytesseract 
tesseract_cmd = 'D:\\Softwares\\Tesseract-OCR\\tesseract' 
pytesseract.pytesseract.tesseract_cmd = 'D:\\Softwares\\Tesseract-OCR\\tesseract' 
TESSDATA_PREFIX= 'D:\Softwares\Tesseract-OCR' 
tessdata_dir_config = '--tessdata-dir "D:\\Softwares\\Tesseract-OCR\\tessdata"' 
print(pytesseract.image_to_string(Image.open('D:\\ImageProcessing\\f2.jpg'), lang='eng', config=tessdata_dir_config)) 
Verwandte Themen