Установка psycopg2 для python: 2.7-alpine в Docker
Чтобы использовать PostgreSql в python, мне нужно
pip install psycopg2
Однако он имеет зависимость от libpq-dev и python-dev. Интересно, как установить зависимости в альпийском? Спасибо.
Вот файл Docker:
FROM python:2.7-alpine
RUN apk add python-dev libpq-dev
RUN pip install psycopg2
а выход:
Шаг 3: RUN apk add python-dev libpq-dev --- > Запуск в 3223b1bf7cde ПРЕДУПРЕЖДЕНИЕ: Игнорирование APKINDEX.167438ca.tar.gz: Нет такого файла или каталог ПРЕДУПРЕЖДЕНИЕ: Игнорирование APKINDEX.a2e6dac0.tar.gz: Нет такого файла или каталог ERROR: неудовлетворительные ограничения: libpq-dev (отсутствует): Требуется: world [libpq-dev] python-dev (отсутствует): Требуется: world [python-dev] ОШИБКА: Service 'service' не удалось создать: команда '/bin/sh -c apk add python-dev libpq-dev' вернулась ненулевой код: 2
Ответы
Ответ 1
Если вам нужно установить psycopg2 для python 2.7 на изображение Docker на основе python: 2.7-alpine, то следующий код для Dockerfile будет приятным для вас:
FROM python:2.7-alpine
RUN apk update && \
apk add --virtual build-deps gcc python-dev musl-dev && \
apk add postgresql-dev
RUN pip install psycopg2
Ответ 2
Объяснение перед компиляцией/установкой psycopg2
libpq
- клиентская библиотека для PostgreSQL https://www.postgresql.org/docs/9.5/libpq.html
postgresql-dev
- это пакет с заголовками для связывания libpq в библиотеке/бинарном файле, как и в psycopg.
Я использую следующую конфигурацию в alpine 3.7, я добавляю некоторые комментарии, чтобы объяснить это.
# Installing client libraries and any other package you need
RUN apk update && apk add libpq
# Installing build dependencies
# For python3 you need to add python3-dev *please upvote the comment
# of @its30 below if you use this*
RUN apk add --virtual .build-deps gcc python-dev musl-dev postgresql-dev
# Installing and build python module
RUN pip install psycopg2
# Delete build dependencies
RUN apk del .build-deps
Ответ 3
Я не смог установить его из python:2.7.13-alpine
. Закончилось:
FROM gliderlabs/alpine:3.3
RUN apk add --no-cache --update \
python \
python-dev \
py-pip \
build-base
RUN apk add --virtual build-deps gcc python-dev musl-dev && \
apk add --no-cache --update postgresql-dev && \
pip install psycopg2==2.7.1
Ответ 4
Кажется, что вам нужен пакет libpq, а не lobpq-dev:
https://pkgs.alpinelinux.org/package/edge/main/x86/py2-psycopg2
Посмотрите на зависимости справа
Ответ 5
добавить его в Dockerfile
RUN apk update && apk add --no-cache --virtual .build-deps\
postgresql-dev gcc libpq python3-dev musl-dev linux-headers\
&& pip install --no-cache-dir -r requirements.txt\
&& apk del .build-deps\
&& rm -rf /var/cache/apk/*