在Buster Docker容器中使用pip安装tesserocr失败的解决办法
解决tesserocr安装编译错误的方案
错误原因
你安装的tesserocr 2.6.0依赖tesseract 5.x版本新增的TessAltoRenderer类,但容器里通过buster源安装的tesseract是4.0.0版本,没有这个类,导致编译失败。
两种解决办法
办法一:降级tesserocr到兼容tesseract 4.x的版本
选择支持tesseract 4.x的tesserocr版本(比如2.5.2),直接指定版本安装:
pip install tesserocr==2.5.2
也可以把这一步整合到Dockerfile里,避免手动操作:
FROM python:3.11-buster AS app WORKDIR /srv/app ENV PYTHONPATH /srv/app RUN apt update -y && \ apt install -y libegl1 libgl1 libxkbcommon-x11-0 dbus tesseract-ocr liblept5 leptonica-progs libleptonica-dev libtesseract-dev RUN pip install --upgrade pip RUN pip install tesserocr==2.5.2
办法二:升级tesseract到5.x版本
通过第三方源在buster系统上安装tesseract 5.x,这样就能兼容最新的tesserocr版本。修改Dockerfile如下:
FROM python:3.11-buster AS app WORKDIR /srv/app ENV PYTHONPATH /srv/app # 添加tesseract 5.x的第三方源 RUN apt update -y && \ apt install -y --no-install-recommends apt-transport-https ca-certificates gnupg && \ echo "deb https://notesalexp.org/tesseract-ocr5/debian/ buster main" >> /etc/apt/sources.list.d/tesseract.list && \ wget -O - https://notesalexp.org/debian/alexp_key.asc | apt-key add - # 安装依赖和tesseract 5.x RUN apt update -y && \ apt install -y libegl1 libgl1 libxkbcommon-x11-0 dbus tesseract-ocr liblept5 leptonica-progs libleptonica-dev libtesseract-dev RUN pip install --upgrade pip RUN pip install tesserocr
内容的提问来源于stack exchange,提问作者Lenny4
相关产品推荐
相关产品推荐

