TesseractNotFoundError: два docker контейнера python app (docker -compose) - PullRequest
2 голосов
/ 20 января 2020

У меня есть 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 с помощью переменной среды, но я не знаю, как.

Использовать Tesseract 4 - Docker Контейнер из uwsgi- nginx - flask - docker

TesseractNotFoundError: tesseract не установлен или не находится на вашем пути

Ответы [ 2 ]

2 голосов
/ 20 января 2020

Вам необходимо установить tesseract в вашем docker образе перед его использованием. По умолчанию python: 3.6.1 изображение не содержит тессеракт. Вам нужно взять базовый образ 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 согласно вашему требованию.

1 голос
/ 20 января 2020

У меня была эта проблема в одном из моих проектов, который работает на Docker (контейнер Ubuntu).
Чтобы решить эту проблему, мне пришлось:
- установить pytesseract через needs.txt; поэтому он должен содержать ваш файл require.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
...