ImportError: библиотека ‘enchant’ C не найдена и, возможно, нуждается в установке

#pyenchant #enchant #distroless

Вопрос:

Я пытаюсь создать контейнер без дистрибутива, используя gcr.io./distroless/python3-debian10, используя базовый образ как debian: buster-slim

Я установил enchant в виртуальную среду python базового образа, затем скопировал виртуальную среду в дистрибутивный образ, но файлы библиотеки enchant не копируются в дистрибутивный контейнер.

Во время отладки я обнаружил, что enchant правильно установлен в контейнере базового образа и работает нормально, но это не отражается в контейнере без дистрибутива.

Вот сообщение об ошибке:

 Traceback (most recent call last):
  File "app.py", line 17, in <module>
    import utils as utils
  File "/app/utils.py", line 13, in <module>
    import enchant
  File "/venv/lib/python3.7/site-packages/enchant/__init__.py", line 81, in <module>
    from enchant import _enchant as _e
  File "/venv/lib/python3.7/site-packages/enchant/_enchant.py", line 157, in <module>
    raise ImportError(msg)
ImportError: The 'enchant' C library was not found and maybe needs to be installed.
See  https://pyenchant.github.io/pyenchant/install.html
for details
 

Я перешел на этот предложенный URL (https://pyenchant.github.io/pyenchant/install.html ) из сообщения об ошибке, в котором они указали установить pyenchant, который уже был установлен. И я также установил libenchant, enchant.

И вот код для справки:

 FROM debian:buster-slim AS build
RUN apt-get update amp;amp; 
    apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev amp;amp; 
    python3 -m venv /venv amp;amp; 
    /venv/bin/pip install --upgrade pip

RUN apt-get update -y

WORKDIR /venv/
RUN apt-get install libre2-dev git wget vim python3-enchant libenchant-dev -y
RUN apt-get install libre2-5
RUN apt-get install enchant -y

FROM build AS build-venv
COPY requirements.txt /requirements.txt
RUN /venv/bin/pip install --disable-pip-version-check -r /requirements.txt

FROM gcr.io/distroless/python3-debian10
COPY --from=build-venv /venv /venv
COPY . /app
WORKDIR /app
EXPOSE 6000
ENTRYPOINT ["/venv/bin/python3", "app.py"]
 

Примечание: я включил pyenchant (версия: 3.2.1) в requirements.txt файл