ImportError: библиотека C 'enchant' не найдена и, возможно, ее необходимо установить
Я пытаюсь создать контейнер без дистрибутива, используя gcr.io./distroless/python3-debian10, используя базовый образ как debian:buster-slim
Я установил enchant в виртуальную среду базового образа python, затем скопировал виртуальную среду в образ без дистрибутива, но файлы библиотеки 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 && \
apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev && \
python3 -m venv /venv && \
/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.