部署Django到Vercel时遇‘pg_config executable not found’错误求助
解决方案:Vercel部署Django时"pg_config executable not found"错误
核心原因
错误本质是部署过程中尝试从源码编译psycopg2,而Vercel的构建环境未安装PostgreSQL开发依赖(包含pg_config)。即便你本地安装了psycopg2-binary,如果requirements.txt未正确指定,部署时仍会拉取需要编译的原生psycopg2包。
步骤1:修正requirements.txt文件
确保你的requirements.txt中仅保留psycopg2-binary,删除psycopg2:
# 错误写法 psycopg2==2.9.7 # 正确写法 psycopg2-binary==2.9.7
若文件由pip freeze生成,务必检查并替换,避免误引入原生psycopg2。
步骤2:清理本地依赖缓存(可选)
如果本地虚拟环境残留psycopg2,执行以下命令清理并重新安装:
pip uninstall psycopg2 -y pip install psycopg2-binary
重新生成requirements.txt:
pip freeze > requirements.txt
步骤3:验证Vercel构建配置
若上述步骤无效,检查Vercel构建配置是否正确:
- 在项目根目录创建或修改
vercel.json,确保构建命令正确安装依赖:
{ "buildCommand": "pip install -r requirements.txt && python manage.py collectstatic --noinput" }
- 确认Vercel使用的Python版本与本地一致(比如你用Python3.9,需在Vercel项目设置中指定对应版本)。
步骤4:排查间接依赖问题
如果项目中其他依赖包间接引入psycopg2,用以下命令排查:
pip show psycopg2
若输出显示该包被其他依赖引用,可在requirements.txt中强制指定psycopg2-binary版本,覆盖依赖链要求:
psycopg2-binary==2.9.7 --force-reinstall
内容的提问来源于stack exchange,提问作者Ledge
相关产品推荐
相关产品推荐

