用于python的psycopg2安装:Docker中的2.7-alpine

sal*_*jad 17 postgresql python-2.7 docker alpine-linux

要在python中使用PostgreSql,我需要

pip install psycopg2   
Run Code Online (Sandbox Code Playgroud)

但是,它依赖于libpq-dev和python-dev.我想知道如何在高山中安装依赖项?谢谢.

这是一个Dockerfile:

FROM python:2.7-alpine

RUN apk add python-dev libpq-dev
RUN pip install psycopg2
Run Code Online (Sandbox Code Playgroud)

输出是:

步骤3:运行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

San*_*ant 23

如果你只需要在基于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
Run Code Online (Sandbox Code Playgroud)


Fel*_*oni 10

编译/安装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
Run Code Online (Sandbox Code Playgroud)

  • 对于python3,我必须将python3-dev添加到我的依赖项中 (3认同)

Max*_*fer 5

似乎您需要的包libpq不是libpq-dev

https://pkgs.alpinelinux.org/package/edge/main/x86/py2-psycopg2

查看右侧的依赖项


pba*_*tey 5

我无法安装它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
Run Code Online (Sandbox Code Playgroud)


Ale*_*ndr 5

在 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
Run Code Online (Sandbox Code Playgroud)