TesseractNotFoundError:两个Docker容器python应用程序(docker-compose)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TesseractNotFoundError:两个Docker容器python应用程序(docker-compose)相关的知识,希望对你有一定的参考价值。

我有在本地运行的带有tesseract的python项目,它可以在Pycharm中使用。我使用了docker-compose.yml,它有两个容器(app和t4re),如下所示:

version: '3'
services:
  app:
    build: .
    image: ocr_app:latest
    depends_on:
      - tesseract
  tesseract:
    image: tesseractshadow/tesseract4re
    container_name: t4re

我的Dockerfile如下:

FROM python:3.6.1
# Create app directory
WORKDIR /app

# Bundle app source
COPY venv/src ./src
COPY venv/data ./data

# Install app dependencies
RUN pip install -r src/requirements.txt

CMD python src/ocr.py

而且我不断收到这些错误:

FileNotFoundError: [Errno 2] No such file or directory: 'tesseract'

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

我是docker的新手,可以阅读大量文档,但是仍然无法解决此错误。我已阅读以下答案。我想我必须使用环境变量将tesseract链接到python应用程序,但是我不知道如何。

Use Tesseract 4 - Docker Container from uwsgi-nginx-flask-docker

TesseractNotFoundError: tesseract is not installed or it's not in your path

答案

使用前,您需要在docker映像中安装tesseract。默认情况下,python:3.6.1 image中没有tesseract。您需要在其中安装ubuntu基本映像,然后安装tesseract和python,然后继续工作。这是解决方案的docker文件:

FROM ubuntu:18.04
RUN apt-get --fix-missing update && apt-get --fix-broken install && apt-get install -y poppler-utils && apt-get install -y tesseract-ocr && \
    apt-get install -y libtesseract-dev && apt-get install -y libleptonica-dev && ldconfig && apt-get install -y python3.6 && \
    apt-get install -y python3-pip && apt install -y libsm6 libxext6

请根据您的要求调整python版本。

另一答案

我在一个运行于Docker(一个Ubuntu容器)的项目中遇到了这个问题。为了解决这个问题,我必须:-通过requirements.txt安装pytesseract;所以您的requirements.txt应该包含:

pytesseract  

-您必须安装tesseract-ocr。为此,您必须在dockerfile中包含以下行:

FROM ubuntu:18.04

ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:alex-p/tesseract-ocr
RUN apt-get update && apt-get install -y tesseract-ocr-all 
RUN apt-get install -y python3-pip python3-minimal libsm6 libxext6 
# To make sure that tesseract-ocr is installed, uncomment the following line.  
# RUN tesseract --version

以上是关于TesseractNotFoundError:两个Docker容器python应用程序(docker-compose)的主要内容,如果未能解决你的问题,请参考以下文章

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your P

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it‘s not in your path

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your p

python使用之识别验证码及相关问题

Pytesseract:“TesseractNotFound 错误:tesseract 未安装或不在您的路径中”,我该如何解决?

计算两个时间差的两个函数