You need to enable JavaScript to run this app. 基于python slim镜像的Django容器安装psycopg2-binary报pg_config缺失错误
优惠活动
大模型
产品
解决方案
定价
更多

基于python slim镜像的Django容器安装psycopg2-binary报pg_config缺失错误

修复步骤

1. 优先调整psycopg2-binary版本(无额外系统依赖)

你当前锁定的psycopg2-binary==2.7.4无对应Python 3.8环境的预编译包,pip会自动切换为源码编译模式,进而触发缺少pg_config的报错。修改requirements.txt:

asgiref==3.3.1
Django==3.1.4
# 替换为兼容Python3.8、带预编译包的版本
psycopg2-binary==2.9.1
pytz==2020.5
sqlparse==0.4.1
django-compressor>=2.2
django-libsass>=0.7

2. 若必须锁定老版本psycopg2,补充Dockerfile系统依赖

如果业务必须使用psycopg2-binary==2.7.4,需要在镜像构建阶段提前安装PostgreSQL开发环境与编译工具,修改Dockerfile:

FROM python:3.8.3-slim-buster
ENV PYTHONUNBUFFERED 1
# 新增安装PostgreSQL开发包、编译工具,同时清理apt缓存减小镜像体积
RUN apt-get update && apt-get install -y --no-install-recommends \
    libpq-dev \
    gcc \
    && rm -rf /var/lib/apt/lists/*
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install --no-cache-dir -r requirements.txt
ADD ./ /code/

3. 修正docker-compose.yml拼写错误

原配置中version行多了空格,可能导致配置解析异常,修改为:

version: "3.9"
   
services:
  db:
    image: postgres
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes: 
      - pgdata:/var/lib/postgresql/data
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

volumes: 
  pgdata:

验证方式

修改完成后重新执行docker-compose up --build即可正常完成依赖安装。


内容的提问来源于stack exchange,提问作者Bill Thornton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.11 04:54:04