Psycopg 3安装及数据库连接报错求助
解决Psycopg3 + FastAPI连接PostgreSQL的ImportError及安装问题
一、先解决安装失败问题
方案1:快速安装预编译二进制包(推荐开发环境)
直接安装psycopg-binary,无需编译,不需要pg_config:
pip install psycopg-binary
方案2:安装纯C实现的psycopg[c](适合生产环境)
安装失败是因为系统找不到pg_config,它是PostgreSQL自带的工具,默认不在系统PATH里:
- 找到你的PostgreSQL安装目录下的
bin文件夹,比如默认路径是C:\Program Files\PostgreSQL\<你的版本号>\bin - 将该路径添加到系统环境变量PATH中
- 重启终端或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)
三、错误原因说明
- 连接时的ImportError:Psycopg3需要依赖至少一种pq wrapper(C/binary/Python实现),你未正确安装对应依赖,导致所有实现都无法加载。
- 安装psycopg[c]失败:
pg_config是编译Psycopg的C实现必需的工具,系统PATH中找不到它,导致编译过程中断。
内容的提问来源于stack exchange,提问作者Hasan Abdul Ghaffar
相关产品推荐
相关产品推荐

