at 18.03-beta 3.5 kB view raw
1diff --git a/src/pyocr/cuneiform.py b/src/pyocr/cuneiform.py 2index a461d92..1f2b914 100644 3--- a/src/pyocr/cuneiform.py 4+++ b/src/pyocr/cuneiform.py 5@@ -27,13 +27,9 @@ from . import error 6 from . import util 7 8 9-# CHANGE THIS IF CUNEIFORM IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY 10-CUNEIFORM_CMD = 'cuneiform' 11+CUNEIFORM_CMD = '@NIX_CUNEIFORM_CMD@' 12 13-CUNEIFORM_DATA_POSSIBLE_PATHS = [ 14- "/usr/local/share/cuneiform", 15- "/usr/share/cuneiform", 16-] 17+CUNEIFORM_DATA_POSSIBLE_PATHS = ['@NIX_CUNEIFORM_DATA@'] 18 19 LANGUAGES_LINE_PREFIX = "Supported languages: " 20 LANGUAGES_SPLIT_RE = re.compile("[^a-z]") 21diff --git a/src/pyocr/libtesseract/tesseract_raw.py b/src/pyocr/libtesseract/tesseract_raw.py 22index b4e7bda..47505f7 100644 23--- a/src/pyocr/libtesseract/tesseract_raw.py 24+++ b/src/pyocr/libtesseract/tesseract_raw.py 25@@ -1,55 +1,13 @@ 26 import ctypes 27 import logging 28 import os 29-import sys 30 31 from ..error import TesseractError 32 33 34 logger = logging.getLogger(__name__) 35 36-TESSDATA_PREFIX = os.getenv('TESSDATA_PREFIX', None) 37-libnames = [] 38- 39-if getattr(sys, 'frozen', False): 40- # Pyinstaller integration 41- libnames += [os.path.join(sys._MEIPASS, "libtesseract-4.dll")] 42- libnames += [os.path.join(sys._MEIPASS, "libtesseract-3.dll")] 43- tessdata = os.path.join(sys._MEIPASS, "data") 44- if not os.path.exists(os.path.join(tessdata, "tessdata")): 45- logger.warning( 46- "Running from container, but no tessdata ({}) found !".format( 47- tessdata 48- ) 49- ) 50- else: 51- TESSDATA_PREFIX = tessdata 52- 53- 54-if sys.platform[:3] == "win": 55- libnames += [ 56- # Jflesch> Don't they have the equivalent of LD_LIBRARY_PATH on 57- # Windows ? 58- "../vs2010/DLL_Release/libtesseract302.dll", 59- "libtesseract302.dll", 60- "C:\\Program Files (x86)\\Tesseract-OCR\\libtesseract-4.dll", 61- "C:\\Program Files (x86)\\Tesseract-OCR\\libtesseract-3.dll", 62- ] 63-else: 64- libnames += [ 65- "libtesseract.so.4", 66- "libtesseract.so.3", 67- ] 68- 69- 70-g_libtesseract = None 71- 72-for libname in libnames: 73- try: 74- g_libtesseract = ctypes.cdll.LoadLibrary(libname) 75- break 76- except OSError: 77- pass 78+g_libtesseract = ctypes.cdll.LoadLibrary('@NIX_LIBTESSERACT_PATH@') 79 80 81 class PageSegMode(object): 82@@ -326,12 +284,11 @@ def init(lang=None): 83 try: 84 if lang: 85 lang = lang.encode("utf-8") 86- prefix = None 87- if TESSDATA_PREFIX: 88- prefix = TESSDATA_PREFIX.encode("utf-8") 89+ prefix = os.getenv('TESSDATA_PREFIX', '@NIX_TESSDATA_PREFIX@') 90+ os.environ['TESSDATA_PREFIX'] = prefix 91 g_libtesseract.TessBaseAPIInit3( 92 ctypes.c_void_p(handle), 93- ctypes.c_char_p(prefix), 94+ ctypes.c_char_p(prefix.encode('utf-8')), 95 ctypes.c_char_p(lang) 96 ) 97 g_libtesseract.TessBaseAPISetVariable( 98diff --git a/src/pyocr/tesseract.py b/src/pyocr/tesseract.py 99index c935881..7139ffe 100755 100--- a/src/pyocr/tesseract.py 101+++ b/src/pyocr/tesseract.py 102@@ -31,8 +31,7 @@ from .builders import DigitBuilder # backward compatibility 103 from .error import TesseractError # backward compatibility 104 from .util import digits_only 105 106-# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY 107-TESSERACT_CMD = 'tesseract.exe' if os.name == 'nt' else 'tesseract' 108+TESSERACT_CMD = '@NIX_TESSERACT_CMD@' 109 110 TESSDATA_EXTENSION = ".traineddata" 111