You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Psycopg 3安装及数据库连接报错求助

解决Psycopg3 + FastAPI连接PostgreSQL的ImportError及安装问题

一、先解决安装失败问题

方案1:快速安装预编译二进制包(推荐开发环境)

直接安装psycopg-binary,无需编译,不需要pg_config:

pip install psycopg-binary

方案2:安装纯C实现的psycopg[c](适合生产环境)

安装失败是因为系统找不到pg_config,它是PostgreSQL自带的工具,默认不在系统PATH里:

  1. 找到你的PostgreSQL安装目录下的bin文件夹,比如默认路径是C:\Program Files\PostgreSQL\<你的版本号>\bin
  2. 将该路径添加到系统环境变量PATH中
  3. 重启终端或IDE后,执行安装命令:
pip install psycopg[c]

二、修正代码中的混用问题

你当前代码同时导入了psycopg和psycopg2,还误用了psycopg2的RealDictCursor,Psycopg3的API有变化,修正后的代码如下:

from fastapi import FastAPI, Response, status, HTTPException
from fastapi.params import Body
from pydantic import BaseModel
from typing import Optional
from random import randrange
import psycopg
from psycopg.rows import dict_row  # Psycopg3中用dict_row返回字典格式结果
import time

app = FastAPI()

while True:
    try:
        # Psycopg3连接配置,指定row_factory为dict_row
        conn = psycopg.connect(
            host='localhost',
            database='fastapi',
            user='postgres',
            password='islamabad',
            row_factory=dict_row
        )
        # 使用上下文管理器获取cursor(Psycopg3推荐写法)
        with conn.cursor() as cursor:
            print("Database successfully connected!")
        break
    except Exception as error:
        print("Connection Failed")
        print("Error: ", error)
        time.sleep(2)

三、错误原因说明

  1. 连接时的ImportError:Psycopg3需要依赖至少一种pq wrapper(C/binary/Python实现),你未正确安装对应依赖,导致所有实现都无法加载。
  2. 安装psycopg[c]失败:pg_config是编译Psycopg的C实现必需的工具,系统PATH中找不到它,导致编译过程中断。

内容的提问来源于stack exchange,提问作者Hasan Abdul Ghaffar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:20:12