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

macOS 10.13.6下FastAPI项目安装psycopg2报egg_info运行失败

问题根因
  • psycopg2是基于C实现的Python扩展,默认通过pip安装时会从源码本地编译,编译过程强依赖PostgreSQL客户端自带的pg_config工具,环境中找不到这个工具就会触发你看到的pg_config executable not found报错。
  • 手动将下载的psycopg2安装包/源码直接拖到site-packages目录的操作完全无效:Python导入模块需要包完成编译构建、生成对应元信息,未走正规安装流程的文件不会被解释器识别,自然会报No module named 'psycopg2'错误。
可行解决方案

二选一即可,优先推荐方案1用于日常开发场景。

方案1:安装预编译二进制版(零依赖,适合开发环境)

先激活你项目对应的Python 3.10虚拟环境,直接执行以下命令安装预编译好的二进制包,不需要本地安装PostgreSQL编译环境:

pip install psycopg2-binary

安装完成后进入Python交互环境执行import psycopg2,无报错即为安装成功,在FastAPI项目中可以直接调用,接口和源码版psycopg2完全一致。

生产环境如果对性能、依赖兼容性有严格要求,建议使用方案2。

方案2:安装编译依赖后装源码版(适合生产环境)

  1. 先通过Homebrew安装PostgreSQL客户端工具链,自动补全pg_config依赖:
brew install postgresql
  1. 保持虚拟环境激活状态,直接执行源码安装命令:
pip install psycopg2
  1. 如果执行后仍然提示找不到pg_config,手动指定pg_config路径再安装即可(Intel芯片Mac的Homebrew安装的PostgreSQL默认pg_config路径如下,M系列芯片把路径开头的/usr/local换成/opt/homebrew):
pip install psycopg2 --global-option=build_ext --global-option="--pg-config=/usr/local/opt/postgresql/bin/pg_config"
额外注意

不要手动往site-packages目录塞包文件,哪怕是下载的whl格式预编译包,也要通过pip install 本地包文件路径的方式安装,否则会出现路径不匹配、架构不兼容、元信息缺失等各种导入问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:27:39