Python pip3安装tesserocr出现错误

Python pip3安装tesserocr出现错误,python,python-3.x,pip,python-3.6,Python,Python 3.x,Pip,Python 3.6,我正试图在Ubuntu上安装tesserocr python3.6包。当我运行pip3安装tesserocr时, 我得到这个错误: Running setup.py bdist_wheel for tesserocr ... error Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-cmhownuf/tesserocr/setu

我正试图在Ubuntu上安装tesserocr python3.6包。当我运行
pip3安装tesserocr
时, 我得到这个错误:

Running setup.py bdist_wheel for tesserocr ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-cmhownuf/tesserocr/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpg1f69eahpip-wheel- --python-tag cp36:
  Supporting tesseract v4.0.0-beta.1
  Configs from pkg-config: {'include_dirs': ['/usr/include'], 'libraries': ['lept', 'tesseract'], 'cython_compile_time_env': {'TESSERACT_VERSION': 1024}}
  running bdist_wheel
  running build
  running build_ext
  building 'tesserocr' extension
  creating build
  creating build/temp.linux-x86_64-3.6
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.6-EKG1lX/python3.6-3.6.5=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include -I/usr/include/python3.6m -c tesserocr.cpp -o build/temp.linux-x86_64-3.6/tesserocr.o
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  tesserocr.cpp: In function ‘tesseract::TessResultRenderer* __pyx_f_9tesserocr_13PyTessBaseAPI__get_renderer(__pyx_obj_9tesserocr_PyTessBaseAPI*, __pyx_t_9tesseract_cchar_t*)’:
  tesserocr.cpp:21180:106: error: no matching function for call to ‘tesseract::TessPDFRenderer::TessPDFRenderer(__pyx_t_9tesseract_cchar_t*&, const char*)’
         __pyx_t_3 = new tesseract::TessPDFRenderer(__pyx_v_outputbase, __pyx_v_self->_baseapi.GetDatapath());
                                                                                                            ^
  In file included from tesserocr.cpp:625:0:
  /usr/include/tesseract/renderer.h:190:3: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(const char*, const char*, bool)
     TessPDFRenderer(const char* outputbase, const char* datadir, bool textonly);
     ^~~~~~~~~~~~~~~
  /usr/include/tesseract/renderer.h:190:3: note:   candidate expects 3 arguments, 2 provided
  /usr/include/tesseract/renderer.h:186:16: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(const tesseract::TessPDFRenderer&)
   class TESS_API TessPDFRenderer : public TessResultRenderer {
                  ^~~~~~~~~~~~~~~
  /usr/include/tesseract/renderer.h:186:16: note:   candidate expects 1 argument, 2 provided
  /usr/include/tesseract/renderer.h:186:16: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(tesseract::TessPDFRenderer&&)
  /usr/include/tesseract/renderer.h:186:16: note:   candidate expects 1 argument, 2 provided
  tesserocr.cpp: In function ‘PyObject* PyInit_tesserocr()’:
  tesserocr.cpp:34594:81: error: ‘OEM_CUBE_ONLY’ is not a member of ‘tesseract’
     __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_CUBE_ONLY); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
                                                                                   ^~~~~~~~~~~~~
  tesserocr.cpp:34594:81: note: suggested alternative: ‘OEM_LSTM_ONLY’
     __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_CUBE_ONLY); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
                                                                                   ^~~~~~~~~~~~~
                                                                                   OEM_LSTM_ONLY
  tesserocr.cpp:34607:81: error: ‘OEM_TESSERACT_CUBE_COMBINED’ is not a member of ‘tesseract’
     __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_TESSERACT_CUBE_COMBINED); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 85, __pyx_L1_error)
                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  tesserocr.cpp:34607:81: note: suggested alternative: ‘OEM_TESSERACT_LSTM_COMBINED’
     __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_TESSERACT_CUBE_COMBINED); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 85, __pyx_L1_error)
                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                   OEM_TESSERACT_LSTM_COMBINED
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for tesserocr
  Running setup.py clean for tesserocr
Failed to build tesserocr
Installing collected packages: tesserocr
  Running setup.py install for tesserocr ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-cmhownuf/tesserocr/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-uewp6mk4-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    Supporting tesseract v4.0.0-beta.1
    Configs from pkg-config: {'include_dirs': ['/usr/include'], 'libraries': ['tesseract', 'lept'], 'cython_compile_time_env': {'TESSERACT_VERSION': 1024}}
    running install
    running build
    running build_ext
    building 'tesserocr' extension
    creating build
    creating build/temp.linux-x86_64-3.6
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.6-EKG1lX/python3.6-3.6.5=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include -I/usr/include/python3.6m -c tesserocr.cpp -o build/temp.linux-x86_64-3.6/tesserocr.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    tesserocr.cpp: In function ‘tesseract::TessResultRenderer* __pyx_f_9tesserocr_13PyTessBaseAPI__get_renderer(__pyx_obj_9tesserocr_PyTessBaseAPI*, __pyx_t_9tesseract_cchar_t*)’:
    tesserocr.cpp:21180:106: error: no matching function for call to ‘tesseract::TessPDFRenderer::TessPDFRenderer(__pyx_t_9tesseract_cchar_t*&, const char*)’
           __pyx_t_3 = new tesseract::TessPDFRenderer(__pyx_v_outputbase, __pyx_v_self->_baseapi.GetDatapath());
                                                                                                              ^
    In file included from tesserocr.cpp:625:0:
    /usr/include/tesseract/renderer.h:190:3: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(const char*, const char*, bool)
       TessPDFRenderer(const char* outputbase, const char* datadir, bool textonly);
       ^~~~~~~~~~~~~~~
    /usr/include/tesseract/renderer.h:190:3: note:   candidate expects 3 arguments, 2 provided
    /usr/include/tesseract/renderer.h:186:16: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(const tesseract::TessPDFRenderer&)
     class TESS_API TessPDFRenderer : public TessResultRenderer {
                    ^~~~~~~~~~~~~~~
    /usr/include/tesseract/renderer.h:186:16: note:   candidate expects 1 argument, 2 provided
    /usr/include/tesseract/renderer.h:186:16: note: candidate: tesseract::TessPDFRenderer::TessPDFRenderer(tesseract::TessPDFRenderer&&)
    /usr/include/tesseract/renderer.h:186:16: note:   candidate expects 1 argument, 2 provided
    tesserocr.cpp: In function ‘PyObject* PyInit_tesserocr()’:
    tesserocr.cpp:34594:81: error: ‘OEM_CUBE_ONLY’ is not a member of ‘tesseract’
       __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_CUBE_ONLY); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
                                                                                     ^~~~~~~~~~~~~
    tesserocr.cpp:34594:81: note: suggested alternative: ‘OEM_LSTM_ONLY’
       __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_CUBE_ONLY); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
                                                                                     ^~~~~~~~~~~~~
                                                                                     OEM_LSTM_ONLY
    tesserocr.cpp:34607:81: error: ‘OEM_TESSERACT_CUBE_COMBINED’ is not a member of ‘tesseract’
       __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_TESSERACT_CUBE_COMBINED); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 85, __pyx_L1_error)
                                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    tesserocr.cpp:34607:81: note: suggested alternative: ‘OEM_TESSERACT_LSTM_COMBINED’
       __pyx_t_10 = __Pyx_PyInt_From_enum__tesseract_3a__3a_OcrEngineMode(tesseract::OEM_TESSERACT_CUBE_COMBINED); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 85, __pyx_L1_error)
                                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                     OEM_TESSERACT_LSTM_COMBINED
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-cmhownuf/tesserocr/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-uewp6mk4-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-cmhownuf/tesserocr/

谢谢大家,我已经解决了。我从git下载tesserocr源文件并运行:

henry@PC:~/tesserocr$ pip3 install .
Processing /home/henry/tesserocr
Installing collected packages: tesserocr
  Running setup.py install for tesserocr ... done
Successfully installed tesserocr-2.2.2
这花了很多时间,但最终还是奏效了。tesserocr的pip源似乎与最新的tesseract ocr不匹配,应该手动安装。

查看此链接以访问

使用conda安装它,而不是pip。这会解决你的问题

conda install -c mcs07 tesserocr

Mac中也存在同样的错误,因为python3是3.6.3,升级到3.7.2,然后安装成功

能否请您也包括pip版本?pip3——versionI在尝试将其安装到macOS上时也会出现类似的错误。包似乎有问题。在他们的github页面上打开问题可能是个好主意:I get tesserocr.cpp:596:34:致命错误:leptonica/allheaders.h:没有这样的文件或目录。。。pip8My pip3版本是9.0.1。事实上,看看他们的产品,我想知道它是否真的应该通过
pip
安装。它似乎可以通过Ubuntu软件包repo:
sudo-apt-install-tesseract-ocr
中的
apt
获得。也许你应该用它来代替@亨利肖