Django项目Docker构建失败求助:psycopg2安装报错
解决Docker构建Django应用时psycopg2安装失败的问题
构建Docker容器时出现pg_config executable not found错误,导致psycopg2无法安装。这是因为psycopg2从源码编译需要PostgreSQL的开发依赖包,而slim版Python镜像默认未预装这些依赖。
两种解决方案
方案一:安装系统依赖包,继续使用psycopg2
在Dockerfile的apt-get install步骤中添加libpq-dev(pg_config工具包含在该包内),修改后的Dockerfile如下:
FROM python:3.10-slim ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 RUN apt-get update && apt-get install -y \ python3-dev \ build-essential \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # 清理apt缓存,减小镜像体积 RUN pip install --upgrade pip COPY ./requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . /srv/app WORKDIR /srv/app
注:Docker容器本身已是隔离环境,无需额外创建virtualenv,去掉这部分步骤能简化构建流程、减小镜像大小
方案二:改用psycopg2-binary预编译包
如果不想安装系统依赖,直接修改requirements.txt,将psycopg2==2.9.6替换为psycopg2-binary==2.9.6:
asgiref==3.7.2 Django==4.2.3 django-environ==0.10.0 djangorestframework==3.14.0 psycopg2-binary==2.9.6
psycopg2-binary是预编译的二进制包,无需编译即可直接安装,适合Docker这类快速构建场景。
验证修改
修改完成后重新执行构建命令:
docker-compose build
内容的提问来源于stack exchange,提问作者Mert Altintas
相关产品推荐
相关产品推荐

