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

Heroku上psycopg2安装失败求助:无法找到pg_config

解决Heroku上psycopg2==2.6.1安装时找不到pg_config的问题

我来帮你搞定这个头疼的安装问题——在Heroku上跑混合Node+Django服务时,老版本psycopg2找不到pg_config的情况确实很常见,哪怕你已经加了Postgres附加组件。下面是几个靠谱的解决方案,按推荐程度排序:

1. 改用psycopg2-binary预编译包(最省心)

老版本的psycopg2需要编译依赖系统的PostgreSQL库,但Heroku上的pg_config路径对它不友好。换成预编译的psycopg2-binary就能直接跳过编译步骤,完美绕开pg_config的问题:

  • 打开你的requirements.txt,把psycopg2==2.6.1替换成psycopg2-binary==2.6.1
  • 重新部署,安装过程应该会顺利完成

注:虽然官方文档说binary版本适合开发,但在Heroku生产环境中使用完全没问题,除非你有特殊的编译定制需求。

2. 手动指定pg_config路径(坚持用原生psycopg2的话)

如果你一定要用原生的psycopg2,可以在安装时手动告诉它pg_config的位置。Heroku上PostgreSQL的二进制文件存放在/app/.apt/usr/bin/,所以修改你的安装命令:

  • 在Procfile里把安装步骤改成:
    web: PATH=/app/.apt/usr/bin:$PATH honcho start
    
    或者直接在pip安装前设置环境变量:
    PATH=/app/.apt/usr/bin:$PATH pip install -r requirements.txt
    
    这样psycopg2就能找到pg_config了。

3. 确认Postgres附加组件的环境变量已加载

有时候附加组件的配置没同步到dyno里,先检查一下:

  • 运行命令:heroku config | grep DATABASE_URL
  • 如果能看到类似postgres://xxx...的输出,说明环境变量正常;如果没有,重新关联一下Postgres附加组件:heroku addons:create heroku-postgresql:hobby-dev

4. 清理Heroku缓存重新构建

缓存残留也可能导致依赖安装异常,试试清理缓存后重新部署:

heroku builds:cache:purge
git push heroku main

5. 检查buildpack顺序

因为你同时运行Node和Django,要确保Heroku用了正确的多buildpack:

  • 查看当前buildpack:heroku buildpacks
  • 如果没有同时包含heroku/python和heroku/nodejs,添加它们:
    heroku buildpacks:add --index 1 heroku/python
    heroku buildpacks:add --index 2 heroku/nodejs
    
    顺序其实影响不大,但确保python buildpack能优先处理requirements.txt。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:08:35