Docker化Django+PostgreSQL项目失败:psycopg2安装报错
解决Docker构建时psycopg2安装失败的问题
方案一:改用预编译的psycopg2-binary包
直接替换requirements.txt中的psycopg2==2.9.6为psycopg2-binary==2.9.6,跳过源码编译步骤,直接安装预编译版本,无需依赖系统层面的PostgreSQL开发工具。
修改后的requirements.txt:
asgiref==3.6.0 Django==4.2 django-cors-headers==3.14.0 django-environ==0.10.0 djangorestframework==3.14.0 psycopg2-binary==2.9.6 pytz==2023.3 sqlparse==0.4.4 tzdata==2023.3
方案二:在Docker镜像中安装PostgreSQL开发依赖
若坚持使用源码版psycopg2,需在pip安装前先安装系统层面的编译依赖包——slim-buster镜像默认缺失pg_config及编译所需工具。
修改后的Dockerfile:
FROM python:3.12.0a7-slim-buster WORKDIR /MyBackend # 安装PostgreSQL开发依赖与编译工具 RUN apt-get update && apt-get install -y --no-install-recommends \ postgresql-server-dev-all \ gcc \ python3-dev \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python" , "manage.py" , "runserver" , "0.0.0.0:8000"]
补充说明
- 方案一操作简单,适合绝大多数开发场景,无需额外配置系统依赖;
- 方案二适用于必须源码编译psycopg2的场景,比如对包安全性有特殊要求或需适配特定环境。
内容的提问来源于stack exchange,提问作者Ramin
相关产品推荐
相关产品推荐

