AttributeError: /usr/lib/libgdal.so.20: неопределенный символ: OSRSetAxisMappingStrategy
Я пытаюсь запустить свой проект в docker, он работал отлично, но теперь что-то случилось, и он не может запуститься. Он терпит крах с
AttributeError: /usr/lib/libgdal.so.20: undefined symbol: OSRSetAxisMappingStrategy
Я много искал, но понятия не имею, как заставить его работать. Я пробовал обновлять все имеющиеся у меня либы, но никакого эффекта. Вот что я использую:
- Django
- Postgis
- Docker-compose
- Docker
Моя конфигурация докера:
FROM python:3.11-buster
# Set work directory
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y \
binutils \
libproj-dev \
gdal-bin \
libgdal-dev \
postgresql-client \
&& rm -rf /var/lib/apt/lists/* \
ENV CPLUS_INCLUDE_PATH=/usr/include/gdal
ENV C_INCLUDE_PATH=/usr/include/gdal
# Install Poetry
COPY pyproject.toml poetry.lock* ./
RUN pip install poetry && \
poetry config virtualenvs.create false && \
poetry install --no-dev
# Copy the application code
COPY . .
# Expose ports
EXPOSE 8000
EXPOSE 8001
# Run the application
ENTRYPOINT ["sh", "-c", "poetry run gunicorn app.wsgi:application --bind 0.0.0.0:8000"]
Не уверен, что это тот ответ, который вы ищете, но я столкнулся с той же проблемой сегодня и решил ее, обновившись с python:3.11-buster
до python:3.12-bookworm
.
Вот мой обновленный конфиг докера:
FROM python:3.12-bookworm
# Create and set the directory where the source code is stored.
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Set environment variables. Note language set to en-GB.
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV LANG en_GB.UTF-8
ENV PYTHONIOENCODING utf_8
# Install system packages required by Wagtail, Django and Psycopg2 and PostGIS
RUN apt-get update --yes --quiet && apt-get install --yes --quiet --no-install-recommends \
build-essential \
libpq-dev \
gdal-bin \
libgdal-dev \
libmariadb-dev-compat libmariadb-dev \
libjpeg62-turbo-dev \
zlib1g-dev \
libwebp-dev \
python-dev-is-python3 \
&& rm -rf /var/lib/apt/lists/*
# Copy the source code and install dependencies
COPY Pipfile Pipfile.lock /usr/src/app/
RUN pip install --upgrade pip
RUN pip install pipenv && pipenv install --system
Примечание: мне также пришлось поменять местами libmariadbclient-dev
на libmariadb-dev-compat libmariadb-dev
и python-dev
на python-dev-is-python3
Надеюсь, это поможет.