Trying to build OCRmyPDF under Cygwin, hit a brick wall

Marco Atzeri marco.atzeri@gmail.com
Fri May 15 01:45:08 GMT 2020


Am 15.05.2020 um 00:50 schrieb Jim Garrison via Cygwin:
> The magic incantation necessary to get strdup turns out to be -
> D_GNU_SOURCE, as noted on StackOverflow.
> 
> However, now I'm encountering a problem with Python's DLL handling
> code.  When attempting to run OCRmyPDF I get
> 
> 
> 
> $ ocrmypdf --help
> Traceback (most recent call last):
>    File "/usr/bin/ocrmypdf", line 11, in <module>
>      load_entry_point('ocrmypdf==9.8.0.post3+g5944044.d20200514',
> 'console_scripts', 'ocrmypdf')()
>    File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py",
> line 489, in load_entry_point
>      return get_distribution(dist).load_entry_point(group, name)
>    File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py",
> line 2852, in load_entry_point
>      return ep.load()
>    File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py",
> line 2443, in load
>      return self.resolve()
>    File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py",
> line 2449, in resolve
>      module = __import__(self.module_name, fromlist=['__name__'], level=0)
>    File
> "/usr/lib/python3.7/site-packages/ocrmypdf-9.8.0.post3+g5944044.d20200514-py3.7.egg/ocrmypdf/__init__.py",
> line 18, in <module>
>      from . import helpers, hocrtransform, leptonica, pdfa, pdfinfo
>    File
> "/usr/lib/python3.7/site-packages/ocrmypdf-9.8.0.post3+g5944044.d20200514-py3.7.egg/ocrmypdf/leptonica.py",
> line 67, in <module>
>      """
> ocrmypdf.exceptions.MissingDependencyError:
> 
> ---------------------------------------------------------------------
>          This error normally occurs when ocrmypdf can't find the Leptonica
>          library, which is usually installed with Tesseract OCR. It could
> be that
>          Tesseract is not installed properly, we can't find the installation
>          on your system PATH environment variable.
> 
>          The library we are looking for is usually called:
>              liblept-5.dll   (Windows)
>              liblept*.dylib  (macOS)
>              liblept*.so     (Linux/BSD)
> 
>          Please review our installation procedures to find a solution:
>              https://ocrmypdf.readthedocs.io/en/latest/installation.html
> 
> ---------------------------------------------------------------------
> 
> 
> In the last file of the traceback (leptonica.py) there's this:
> 
> 
> from ctypes.util import find_library
> ...
> if os.name == 'nt':
>      libname = 'liblept-5'
>      os.environ['PATH'] = shim_paths_with_program_files()
> else:
>      libname = 'lept'
> 
> 
> In Cygwin, that library is /usr/bin/cyglept-5.dll (why was the name
> changed?)

standard on Cygwin to differentiate from mingw build
https://cygwin.com/cygwin-ug-net/dll.html
> 
> First I created a symlink from cyglept-5.dll to liblept-5.dll, with no
> effect. So I added a test for Cygwin at that point, resulting in this
> code:
> 
> 
> if os.name == 'nt':
>      libname = 'liblept-5'
>      os.environ['PATH'] = shim_paths_with_program_files()
> elif sys.platform == 'cygwin':
>      libname = 'cyglept-5'
> else:
>      libname = 'lept'
> 
> 
> This also had no effect, so I tried playing with find_library() in the
> interactive shell.  In Cygwin, it doesn't seem to find any DLLs even
> though those DLLs are actually loadable.  Viz:
> 
> 
> $ python3
> Python 3.7.7 (default, Apr 10 2020, 07:59:19)
> [GCC 9.3.0] on cygwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import os
>>>> import sys
>>>> from ctypes import *
>>>> from ctypes.util import find_library
>>>> find_library('cyglept-5') or 'Not found'
> 'Not found'
>>>> find_library('cyglept-5.dll') or 'Not Found'
> 'Not Found'
>>>> cdll.LoadLibrary('cyglept-5.dll') or 'Not Found'
> <CDLL 'cyglept-5.dll', handle 3f7970000 at 0x6fffffea76d0>
> 
> 
> So it appears to me that possibly find_library() is broken because
> it doesn't find the library, but yet Python can actually load the
> library.
> 
> What am I missing?
> 

where are you looking for ?
Have you installed libleptonica_5 and libleptonica-devel ?


$ cygcheck -cd |grep lept
leptonica                               1.79.0-1
libleptonica-devel                      1.79.0-1
libleptonica_5                          1.79.0-1






More information about the Cygwin mailing list