要在python中使用PostgreSql,我需要
pip install psycopg2
但是,它依赖于libpq-dev和python-dev。我想知道如何在高山中安装依赖项?感谢。
这是一个Dockerfile:
FROM python:2.7-alpine
RUN apk add python-dev libpq-dev
RUN pip install psycopg2
,输出为:
第3步:RUN apk添加python-dev libpq-dev --->运行 3223b1bf7cde警告:忽略APKINDEX.167438ca.tar.gz:没有这样的文件 或目录警告:忽略APKINDEX.a2e6dac0.tar.gz:没有这样的文件 或目录错误:不可满足的约束:libpq-dev(缺失): 要求:world [libpq-dev] python-dev(缺失): 要求:world [python-dev]错误:服务'服务'无法构建:命令' / bin / sh -c apk添加python-dev libpq-dev'回 非零代码:2
答案 0 :(得分:19)
如果你只需要在基于python:2.7-alpine的Docker镜像上为python 2.7安装psycopg2,那么下面的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
答案 1 :(得分:6)
我无法从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
答案 2 :(得分:5)
编译/安装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
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 :(得分:4)
看起来像你需要的包是libpq而不是lobpq-dev:
https://pkgs.alpinelinux.org/package/edge/main/x86/py2-psycopg2
查看右侧的依赖项
答案 4 :(得分:3)
在Docker的Alpine Linux下运行Python 3.7和PostgreSQL时出现问题。 这篇文章对https://www.rockyourcode.com/install-psycopg2-binary-with-docker/
有帮助主要是在您的需求文件中引用psypcopg2-binary
并安装以下软件包(在Dockerfile中):
RUN apk update && \
apk add --no-cache --virtual build-deps gcc python3-dev musl-dev && \
apk add postgresql-dev
答案 5 :(得分:0)
将其添加到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/*
答案 6 :(得分:0)
帮助我的是:
RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& apk add build-base \
&& apk add gcc musl-dev libffi-dev openssl-dev python3-dev \
&& apk add postgresql-dev \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache
RUN pip install --trusted-host pypi.python.org psycopg2
特别是apk add gcc musl-dev libffi-dev openssl-dev python3-dev
,如Docker: Installing python cryptography on alpine linux distribution所示