mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-28 03:46:06 -05:00 
			
		
		
		
	Fix: Rework system check so it won't crash if tesseract is not found (#7640)
This commit is contained in:
		| @@ -78,7 +78,7 @@ def binaries_check(app_configs, **kwargs): | |||||||
|     error = "Paperless can't find {}. Without it, consumption is impossible." |     error = "Paperless can't find {}. Without it, consumption is impossible." | ||||||
|     hint = "Either it's not in your ${PATH} or it's not installed." |     hint = "Either it's not in your ${PATH} or it's not installed." | ||||||
|  |  | ||||||
|     binaries = (settings.CONVERT_BINARY, "tesseract") |     binaries = (settings.CONVERT_BINARY, "tesseract", "gs") | ||||||
|  |  | ||||||
|     check_messages = [] |     check_messages = [] | ||||||
|     for binary in binaries: |     for binary in binaries: | ||||||
|   | |||||||
| @@ -21,26 +21,32 @@ def get_tesseract_langs(): | |||||||
|  |  | ||||||
| @register() | @register() | ||||||
| def check_default_language_available(app_configs, **kwargs): | def check_default_language_available(app_configs, **kwargs): | ||||||
|     installed_langs = get_tesseract_langs() |     errs = [] | ||||||
|  |  | ||||||
|     if not settings.OCR_LANGUAGE: |     if not settings.OCR_LANGUAGE: | ||||||
|         return [ |         errs.append( | ||||||
|             Warning( |             Warning( | ||||||
|                 "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE. " |                 "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE. " | ||||||
|                 "This means that tesseract will fallback to english.", |                 "This means that tesseract will fallback to english.", | ||||||
|             ), |             ), | ||||||
|         ] |         ) | ||||||
|  |         return errs | ||||||
|  |  | ||||||
|     specified_langs = settings.OCR_LANGUAGE.split("+") |     # binaries_check in paperless will check and report if this doesn't exist | ||||||
|  |     # So skip trying to do anything here and let that handle missing binaries | ||||||
|  |     if shutil.which("tesseract") is not None: | ||||||
|  |         installed_langs = get_tesseract_langs() | ||||||
|  |  | ||||||
|     for lang in specified_langs: |         specified_langs = [x.strip() for x in settings.OCR_LANGUAGE.split("+")] | ||||||
|         if lang not in installed_langs: |  | ||||||
|             return [ |  | ||||||
|                 Error( |  | ||||||
|                     f"The selected ocr language {lang} is " |  | ||||||
|                     f"not installed. Paperless cannot OCR your documents " |  | ||||||
|                     f"without it. Please fix PAPERLESS_OCR_LANGUAGE.", |  | ||||||
|                 ), |  | ||||||
|             ] |  | ||||||
|  |  | ||||||
|     return [] |         for lang in specified_langs: | ||||||
|  |             if lang not in installed_langs: | ||||||
|  |                 errs.append( | ||||||
|  |                     Error( | ||||||
|  |                         f"The selected ocr language {lang} is " | ||||||
|  |                         f"not installed. Paperless cannot OCR your documents " | ||||||
|  |                         f"without it. Please fix PAPERLESS_OCR_LANGUAGE.", | ||||||
|  |                     ), | ||||||
|  |                 ) | ||||||
|  |  | ||||||
|  |     return errs | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Trenton H
					Trenton H