【问题标题】:TesseractNotFoundError: two docker container python app (docker-compose)TesseractNotFoundError:两个 docker 容器 python 应用程序(docker-compose)
【发布时间】:2020-01-20 09:59:56
【问题描述】:

我的 python 项目在本地运行 tesseract,它可以在 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

【问题讨论】:

  • 要使用 tesseract,你应该安装 pytesseract(我猜你已经通过 requirements.txt 做到了)并且你必须通过你的 dockerfile 安装 tesseract-ocr
  • 是的,我通过 requirements.txt 安装了 pytesseract。我以为我可以使用 tesseractshadow/tesseract4re 图像而不是在 ubuntu 中安装它。
  • 好吧,我不确定这是否可行,但我描述的方法对我有用。
  • 您是否找到了将 tesseract 包含在您的 dockerfile 中的解决方案?我面临着一个类似的问题,即将需要 tesseract 的本地文件容器化到 docker 中。 @s.tafazzoli
  • @liamsuma:是的,这里的两个答案都有效,我将其中一个用于我的项目。

标签: python docker docker-compose tesseract


【解决方案1】:

在使用之前,您需要在 docker 镜像中安装 tesseract。默认情况下,python:3.6.1 图像中没有 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版本。

【讨论】:

    【解决方案2】:

    我在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 2017-05-19
      • 2020-01-06
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多