部署Django应用至Vercel遇psycopg2构建错误,求解决方案
核心问题:你同时在requirements.txt里放了
psycopg2==2.9.6和psycopg-binary==3.1.9,这不仅冗余还会引发冲突。psycopg2是需要编译的版本,依赖PostgreSQL开发库(包含pg_config),而Vercel默认构建环境没预装这些,所以编译失败;psycopg-binary是预编译的二进制包,完全不需要编译,正好适配这种无编译环境的场景。第一步:清理依赖
直接删掉requirements.txt里的psycopg2==2.9.6,只保留psycopg-binary==3.1.9。这一步就能解决找不到pg_config的问题,因为二进制包不需要编译流程。不需要创建setup.cfg,除非还有其他依赖配置需求。如果清理后仍有问题,可在Vercel构建命令中添加依赖安装步骤:
修改Vercel的构建命令为:apt-get update && apt-get install -y libpq-dev && pip3.9 install --disable-pip-version-check --target . --upgrade -r requirements.txt && python manage.py collectstatic --noinput
不过用psycopg-binary的话,这一步其实没必要,优先用清理依赖的方案。本地验证:先在本地运行
pip install -r requirements.txt,确保依赖能正常安装,避免本地和部署环境依赖不一致导致的问题。
内容的提问来源于stack exchange,提问作者Soedarhana

