Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python-tesseract 0.7.4 on Archlinux: ImportError, undefined symbol #20

Closed
GoogleCodeExporter opened this issue Dec 28, 2015 · 24 comments
Closed

Comments

@GoogleCodeExporter
Copy link

The problem:




$ python2
Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2.cv as cv
>>> import tesseract
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/python_tesseract-0.7.4-py2.7-linux-x86_64.egg/tesseract.py", line 26, in <module>
    _tesseract = swig_import_helper()
  File "/usr/lib/python2.7/site-packages/python_tesseract-0.7.4-py2.7-linux-x86_64.egg/tesseract.py", line 22, in swig_import_helper
    _mod = imp.load_module('_tesseract', fp, pathname, description)
ImportError: 
/usr/lib/python2.7/site-packages/python_tesseract-0.7.4-py2.7-linux-x86_64.egg/_
tesseract.so: undefined symbol: 
_ZN9tesseract11TessBaseAPI18SetFillLatticeFuncEMNS_7WordrecEFvRK6MATRIXRKP8list_
recRK10UNICHARSETP12BlamerBundleE



The compilation output:



$ python2 config.py; python2 setup.py clean; python2 setup.py build; sudo 
python2 setup.py install)
Current Version : 0.7.4
===========['stdc++', 'tesseract', 'lept', 'opencv_core']===========
running clean
Current Version : 0.7.4
===========['stdc++', 'tesseract', 'lept', 'opencv_core']===========
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
building '_tesseract' extension
swigging tesseract.i to tesseract_wrap.cpp
swig -python -c++ -I/usr/include/tesseract -I/usr/include/leptonica -o 
tesseract_wrap.cpp tesseract.i
/usr/include/tesseract/publictypes.h:73: Warning 462: Unable to set 
dimensionless array variable
creating build/temp.linux-x86_64-2.7
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 
-pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
tesseract_wrap.cpp -o build/temp.linux-x86_64-2.7/tesseract_wrap.o
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 
-pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
main_dummy.cpp -o build/temp.linux-x86_64-2.7/main_dummy.o
In file included from /usr/include/python2.7/Python.h:8:0,
                 from config.h:8,
                 from main_dummy.cpp:8:
/usr/include/python2.7/pyconfig.h:1161:0: attention : « _POSIX_C_SOURCE » 
redéfini [enabled by default]
In file included from /usr/include/assert.h:37:0,
                 from ./opencv2/core/types_c.h:52,
                 from ./opencv2/core/core_c.h:47,
                 from /usr/include/opencv/cv.h:63,
                 from config.h:7,
                 from main_dummy.cpp:8:
/usr/include/features.h:164:0: note: ceci est la localisation d'une 
précédente définition
In file included from /usr/include/python2.7/Python.h:8:0,
                 from config.h:8,
                 from main_dummy.cpp:8:
/usr/include/python2.7/pyconfig.h:1183:0: attention : « _XOPEN_SOURCE » 
redéfini [enabled by default]
In file included from /usr/include/assert.h:37:0,
                 from ./opencv2/core/types_c.h:52,
                 from ./opencv2/core/core_c.h:47,
                 from /usr/include/opencv/cv.h:63,
                 from config.h:7,
                 from main_dummy.cpp:8:
/usr/include/features.h:166:0: note: ceci est la localisation d'une 
précédente définition
main_dummy.cpp: In function ‘int readBuf(const char*, l_uint8*)’:
main_dummy.cpp:53:21: attention : ignoring return value of ‘size_t 
fread(void*, size_t, size_t, FILE*)’, declared with attribute 
warn_unused_result [-Wunused-result]
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 
-pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
fmemopen.c -o build/temp.linux-x86_64-2.7/fmemopen.o
g++ -pthread -shared 
-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu 
-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -march=x86-64 
-mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 
-D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-2.7/tesseract_wrap.o 
build/temp.linux-x86_64-2.7/main_dummy.o build/temp.linux-x86_64-2.7/fmemopen.o 
-L/usr/lib -lstdc++ -ltesseract -llept -lopencv_core -lpython2.7 -o 
build/lib.linux-x86_64-2.7/_tesseract.so
==> Entre dans l'environnement fakeroot…
==> Lancement de package()...
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded: 
ignored.
Current Version : 0.7.4
===========['stdc++', 'tesseract', 'lept', 'opencv_core']===========
running install
running bdist_egg
running egg_info
writing python_tesseract.egg-info/PKG-INFO
writing top-level names to python_tesseract.egg-info/top_level.txt
writing dependency_links to python_tesseract.egg-info/dependency_links.txt
unrecognized .svn/entries format in 
reading manifest file 'python_tesseract.egg-info/SOURCES.txt'
writing manifest file 'python_tesseract.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/tesseract.py -> build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/_tesseract.so -> build/bdist.linux-x86_64/egg
byte-compiling build/bdist.linux-x86_64/egg/tesseract.py to tesseract.pyc
creating stub loader for _tesseract.so
byte-compiling build/bdist.linux-x86_64/egg/_tesseract.py to _tesseract.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/PKG-INFO -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/SOURCES.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/dependency_links.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/top_level.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
tesseract: module references __file__
creating dist
creating 'dist/python_tesseract-0.7.4-py2.7-linux-x86_64.egg' and adding 
'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing python_tesseract-0.7.4-py2.7-linux-x86_64.egg
creating 
/usr/lib/python2.7/site-packages/python_tesseract-0.7.4-py2.7-linux-x86_64.egg
Extracting python_tesseract-0.7.4-py2.7-linux-x86_64.egg to 
/usr/lib/python2.7/site-packages
Adding python-tesseract 0.7.4 to easy-install.pth file

Original issue reported on code.google.com by marin.st...@gmail.com on 2 May 2012 at 4:18

@GoogleCodeExporter
Copy link
Author

Confirmed here (also on Arch Linux).

$ python2
Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tesseract
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "tesseract.py", line 26, in <module>
    _tesseract = swig_import_helper()
  File "tesseract.py", line 18, in swig_import_helper
    import _tesseract
ImportError: 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg/_tesseract.so: undefined symbol: 
_ZN9tesseract11TessBaseAPI18SetFillLatticeFuncEMNS_7WordrecEFvRK6MATRIXRKP8list_
recRK10UNICHARSETP12BlamerBundleE



The build and install process went as follows:



$ python2 setup.py build
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
building '_tesseract' extension
swigging tesseract.i to tesseract_wrap.cpp
swig -python -c++ -I/usr/include/tesseract -I/usr/include/leptonica -o 
tesseract_wrap.cpp tesseract.i
/usr/include/tesseract/publictypes.h:73: Warning 462: Unable to set 
dimensionless array variable
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
tesseract_wrap.cpp -o build/temp.linux-x86_64-2.7/tesseract_wrap.o
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
main_dummy.cpp -o build/temp.linux-x86_64-2.7/main_dummy.o
In file included from /usr/include/python2.7/Python.h:8:0,
                 from main_dummy.h:3,
                 from main_dummy.cpp:25:
/usr/include/python2.7/pyconfig.h:1161:0: warning: "_POSIX_C_SOURCE" redefined 
[enabled by default]
In file included from /usr/include/stdio.h:28:0,
                 from /usr/include/leptonica/alltypes.h:20,
                 from /usr/include/leptonica/allheaders.h:23,
                 from main_dummy.cpp:18:
/usr/include/features.h:164:0: note: this is the location of the previous 
definition
In file included from /usr/include/python2.7/Python.h:8:0,
                 from main_dummy.h:3,
                 from main_dummy.cpp:25:
/usr/include/python2.7/pyconfig.h:1183:0: warning: "_XOPEN_SOURCE" redefined 
[enabled by default]
In file included from /usr/include/stdio.h:28:0,
                 from /usr/include/leptonica/alltypes.h:20,
                 from /usr/include/leptonica/allheaders.h:23,
                 from main_dummy.cpp:18:
/usr/include/features.h:166:0: note: this is the location of the previous 
definition
main_dummy.cpp: In function ‘int readBuf(const char*, l_uint8*)’:
main_dummy.cpp:54:21: warning: ignoring return value of ‘size_t fread(void*, 
size_t, size_t, FILE*)’, declared with attribute warn_unused_result 
[-Wunused-result]
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
fmemopen.c -o build/temp.linux-x86_64-2.7/fmemopen.o
g++ -pthread -shared 
-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu 
build/temp.linux-x86_64-2.7/tesseract_wrap.o 
build/temp.linux-x86_64-2.7/main_dummy.o build/temp.linux-x86_64-2.7/fmemopen.o 
-L/usr/lib -lstdc++ -ltesseract -llept -lpython2.7 -o 
build/lib.linux-x86_64-2.7/_tesseract.so

$ sudo python2 setup.py install
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running install
running bdist_egg
running egg_info
writing python_tesseract.egg-info/PKG-INFO
writing top-level names to python_tesseract.egg-info/top_level.txt
writing dependency_links to python_tesseract.egg-info/dependency_links.txt
unrecognized .svn/entries format in 
reading manifest file 'python_tesseract.egg-info/SOURCES.txt'
writing manifest file 'python_tesseract.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/_tesseract.so -> build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/tesseract.py -> build/bdist.linux-x86_64/egg
byte-compiling build/bdist.linux-x86_64/egg/tesseract.py to tesseract.pyc
creating stub loader for _tesseract.so
byte-compiling build/bdist.linux-x86_64/egg/_tesseract.py to _tesseract.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/PKG-INFO -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/SOURCES.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/dependency_links.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/top_level.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
tesseract: module references __file__
creating dist
creating 'dist/python_tesseract-tesseract-py2.7-linux-x86_64.egg' and adding 
'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing python_tesseract-tesseract-py2.7-linux-x86_64.egg
removing 
'/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.
egg' (and everything under it)
creating 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg
Extracting python_tesseract-tesseract-py2.7-linux-x86_64.egg to 
/usr/lib/python2.7/site-packages
python-tesseract tesseract is already the active version in easy-install.pth

Installed 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg
Processing dependencies for python-tesseract==tesseract
Finished processing dependencies for python-tesseract==tesseract

Original comment by digitald...@gmail.com on 2 May 2012 at 5:55

@GoogleCodeExporter
Copy link
Author

I guess that your version of tesseract is 3.01 not 3.02.

Try commenting lines 582-586 in baseapi_mini.h
//#if !defined(__windows__)
  /** Sets Wordrec::fill_lattice_ function to point to the given function. */
//  void SetFillLatticeFunc(FillLatticeFunc f);
//#endif

Original comment by FreeT...@gmail.com on 2 May 2012 at 6:24

@GoogleCodeExporter
Copy link
Author

Yes, you are right; tesseract is version 3.01.

Commenting the lines does not help. I get the same output as before.

Anyway, thanks for your time! Much appreciated! :)

Original comment by digitald...@gmail.com on 2 May 2012 at 6:45

@GoogleCodeExporter
Copy link
Author

What is the error message? Is it still the same?

Original comment by FreeT...@gmail.com on 2 May 2012 at 7:08

@GoogleCodeExporter
Copy link
Author

Clean it first.

python setup.py clean


Original comment by FreeT...@gmail.com on 2 May 2012 at 7:10

@GoogleCodeExporter
Copy link
Author

Yes, I did run a clean first, but apparently I didn't pay enough attention: the 
error is now a different 'undefined symbol':

$ python2
Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tesseract
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "tesseract.py", line 26, in <module>
    _tesseract = swig_import_helper()
  File "tesseract.py", line 18, in swig_import_helper
    import _tesseract
ImportError: 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg/_tesseract.so: undefined symbol: 
_ZN9tesseract11TessBaseAPI18GetComponentImagesENS_17PageIteratorLevelEbPP4PixaPP
i


And the full output from the building and installing:


$ sudo python2 setup.py clean; python2 setup.py build; sudo python2 setup.py 
install
Password: 
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running clean
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
building '_tesseract' extension
swigging tesseract.i to tesseract_wrap.cpp
swig -python -c++ -I/usr/include/tesseract -I/usr/include/leptonica -o 
tesseract_wrap.cpp tesseract.i
/usr/include/tesseract/publictypes.h:73: Warning 462: Unable to set 
dimensionless array variable
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
tesseract_wrap.cpp -o build/temp.linux-x86_64-2.7/tesseract_wrap.o
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
main_dummy.cpp -o build/temp.linux-x86_64-2.7/main_dummy.o
In file included from /usr/include/python2.7/Python.h:8:0,
                 from main_dummy.h:3,
                 from main_dummy.cpp:25:
/usr/include/python2.7/pyconfig.h:1161:0: warning: "_POSIX_C_SOURCE" redefined 
[enabled by default]
In file included from /usr/include/stdio.h:28:0,
                 from /usr/include/leptonica/alltypes.h:20,
                 from /usr/include/leptonica/allheaders.h:23,
                 from main_dummy.cpp:18:
/usr/include/features.h:164:0: note: this is the location of the previous 
definition
In file included from /usr/include/python2.7/Python.h:8:0,
                 from main_dummy.h:3,
                 from main_dummy.cpp:25:
/usr/include/python2.7/pyconfig.h:1183:0: warning: "_XOPEN_SOURCE" redefined 
[enabled by default]
In file included from /usr/include/stdio.h:28:0,
                 from /usr/include/leptonica/alltypes.h:20,
                 from /usr/include/leptonica/allheaders.h:23,
                 from main_dummy.cpp:18:
/usr/include/features.h:166:0: note: this is the location of the previous 
definition
main_dummy.cpp: In function ‘int readBuf(const char*, l_uint8*)’:
main_dummy.cpp:54:21: warning: ignoring return value of ‘size_t fread(void*, 
size_t, size_t, FILE*)’, declared with attribute warn_unused_result 
[-Wunused-result]
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/include/tesseract -I/usr/include/leptonica -I/usr/include/python2.7 -c 
fmemopen.c -o build/temp.linux-x86_64-2.7/fmemopen.o
g++ -pthread -shared 
-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu 
build/temp.linux-x86_64-2.7/tesseract_wrap.o 
build/temp.linux-x86_64-2.7/main_dummy.o build/temp.linux-x86_64-2.7/fmemopen.o 
-L/usr/lib -lstdc++ -ltesseract -llept -lpython2.7 -o 
build/lib.linux-x86_64-2.7/_tesseract.so
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running install
running bdist_egg
running egg_info
writing python_tesseract.egg-info/PKG-INFO
writing top-level names to python_tesseract.egg-info/top_level.txt
writing dependency_links to python_tesseract.egg-info/dependency_links.txt
unrecognized .svn/entries format in 
reading manifest file 'python_tesseract.egg-info/SOURCES.txt'
writing manifest file 'python_tesseract.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/_tesseract.so -> build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/tesseract.py -> build/bdist.linux-x86_64/egg
byte-compiling build/bdist.linux-x86_64/egg/tesseract.py to tesseract.pyc
creating stub loader for _tesseract.so
byte-compiling build/bdist.linux-x86_64/egg/_tesseract.py to _tesseract.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/PKG-INFO -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/SOURCES.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/dependency_links.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
copying python_tesseract.egg-info/top_level.txt -> 
build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
tesseract: module references __file__
creating dist
creating 'dist/python_tesseract-tesseract-py2.7-linux-x86_64.egg' and adding 
'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing python_tesseract-tesseract-py2.7-linux-x86_64.egg
removing 
'/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.
egg' (and everything under it)
creating 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg
Extracting python_tesseract-tesseract-py2.7-linux-x86_64.egg to 
/usr/lib/python2.7/site-packages
python-tesseract tesseract is already the active version in easy-install.pth

Installed 
/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.e
gg
Processing dependencies for python-tesseract==tesseract
Finished processing dependencies for python-tesseract==tesseract

Original comment by digitald...@gmail.com on 2 May 2012 at 7:16

@GoogleCodeExporter
Copy link
Author

You have three choices:
1. compiles the svn version of tesseract-ocr  
http://code.google.com/p/tesseract-ocr/wiki/TesseractSvnInstallation
2. Download the compiled version of python-tesseract
http://code.google.com/p/python-tesseract/downloads/list
3, comment out all the missing library in baseapi_mini.h
lines: 404-406
  //Boxa* GetComponentImages(PageIteratorLevel level,
  //                         bool text_only,
  //                         Pixa** pixa, int** blockids);

Original comment by FreeT...@gmail.com on 3 May 2012 at 3:16

@GoogleCodeExporter
Copy link
Author

Thanks for your suggestions!

I tried #3, which didn't work. I still got the 'undefined symbol' error, 
although it was yet another different 'symbol' this time.

Suggestion #2 is not really a possibility, as Arch Linux doesn't use rpm or 
deb. There are tools to convert those package types, but I would rather avoid 
them.

I went for suggestion #1, building tesseract-ocr from SVN. It got build and 
installed without problems (I have tested it from the command line), but when I 
try to build python-tesseract I know get the following error. It is probably a 
missing dependency, but then I am not really sure what it should be. Any ideas?


$ sudo python2 setup.py clean; python2 setup.py build
Password: 
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running clean
Current Version : tesseract
===========['stdc++', 'tesseract', 'lept']===========
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
copying tesseract.py -> build/lib.linux-x86_64-2.7
running build_ext
building '_tesseract' extension
swigging tesseract.i to tesseract_wrap.cpp
swig -python -c++ -I/usr/local/include/tesseract -I/usr/include/leptonica -o 
tesseract_wrap.cpp tesseract.i
/usr/local/include/tesseract/publictypes.h:78: Warning 462: Unable to set 
dimensionless array variable
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/local/include/tesseract -I/usr/include/leptonica 
-I/usr/include/python2.7 -c tesseract_wrap.cpp -o 
build/temp.linux-x86_64-2.7/tesseract_wrap.o
gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG 
-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector 
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fPIC -I. 
-I/usr/local/include/tesseract -I/usr/include/leptonica 
-I/usr/include/python2.7 -c main_dummy.cpp -o 
build/temp.linux-x86_64-2.7/main_dummy.o
main_dummy.cpp:20:17: fatal error: img.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

Original comment by digitald...@gmail.com on 3 May 2012 at 9:02

@GoogleCodeExporter
Copy link
Author

Img.h should be in either
/usr/include/tesseract/img.h
or
/usr/local/include/tesseract/img.h

where is your tesseract svn indeed installed?

Original comment by FreeT...@gmail.com on 3 May 2012 at 9:11

@GoogleCodeExporter
Copy link
Author

if the directory /usr/local/include/tesseract is not used, remove it.

Original comment by FreeT...@gmail.com on 3 May 2012 at 9:22

@GoogleCodeExporter
Copy link
Author

also referring to 
http://code.google.com/p/python-tesseract/wiki/HowToCompilePythonTesseract
the steps should be

python config.py
python setup.py clean
python setup.py build
sudo python setup.py install

Original comment by FreeT...@gmail.com on 3 May 2012 at 9:25

@GoogleCodeExporter
Copy link
Author

My tesseract SVN installation is just in a subdirectory of my home. I figured 
that 'sudo make install' would make tesseract-ocr copy the appropriate files to 
/usr/local/include, /usr/local/bin, etc., but apparently it is not the case. It 
_does_ copy a few files to /usr/local/include/tesseract, but not img.h.

Should I use a specific prefix for the make install process? I could of course 
just symlink the files, but I would rather avoid those kind of hacks if I can. 
:)

Original comment by digitald...@gmail.com on 3 May 2012 at 9:40

@GoogleCodeExporter
Copy link
Author

just copy img.h to /usr/local/include/tesseract then

Original comment by FreeT...@gmail.com on 3 May 2012 at 10:00

@GoogleCodeExporter
Copy link
Author

Okay, for reference I needed to copy tesseract-ocr/image/img.h, 
tesseract-ocr/ccutil/tprintf.h and tesseract-ocr/api/tesseractmain.h to 
/usr/local/include/tesseract. It is now possible to build and install 
python-tesseract, but I still get errors when trying to import tesseract:

$ python2
Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tesseract
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.egg/tesseract.py", line 26, in <module>
    _tesseract = swig_import_helper()
  File "/usr/lib/python2.7/site-packages/python_tesseract-tesseract-py2.7-linux-x86_64.egg/tesseract.py", line 22, in swig_import_helper
    _mod = imp.load_module('_tesseract', fp, pathname, description)
ImportError: libtesseract.so.3: cannot open shared object file: No such file or 
directory


The path to libtesseract.so.3 on my computer is 
/usr/local/lib/libtesseract.so.3. Where does python-tesseract expect 
libtesseract.so.3 to be placed?


Original comment by digitald...@gmail.com on 3 May 2012 at 1:40

@GoogleCodeExporter
Copy link
Author

Are u sure u have only one version of tesseract in your system?

if so, cp libtesseract.so.3 to /usr/lib  as well


Original comment by FreeT...@gmail.com on 3 May 2012 at 2:58

@GoogleCodeExporter
Copy link
Author

Yes, I uninstalled tesseract 3.01 before installing from SVN.

But copying libtesseract.so.3 to /usr/lib solved the problem---python-tesseract 
now works like a charm! Thank you very much for your help! :)

Original comment by digitald...@gmail.com on 3 May 2012 at 3:20

@GoogleCodeExporter
Copy link
Author

You need to be consistent with the use of Prefix
In your case, it should be
./configure --prefix=/usr

Original comment by FreeT...@gmail.com on 3 May 2012 at 4:09

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

By the way, send me your compiled package to me after running the following 
command

python setup.py bdist --format=gztar

Many thanks

Original comment by FreeT...@gmail.com on 3 May 2012 at 4:44

@GoogleCodeExporter
Copy link
Author

Original comment by FreeT...@gmail.com on 4 May 2012 at 4:39

  • Changed state: Done

@GoogleCodeExporter
Copy link
Author


patch for python-tesseract svn version against tesseract-ocr 3.01

Submitted By Ionut Biru

P.S. if u are using svn version of tesseract-ocr DO NOT APPLY THE PATCH

Original comment by FreeT...@gmail.com on 10 May 2012 at 2:18

Attachments:

@GoogleCodeExporter
Copy link
Author

[deleted comment]

1 similar comment
@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

Original comment by FreeT...@gmail.com on 10 May 2012 at 2:46

  • Changed state: Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant