如何修复错误:在 Elastic Beanstalk 上永久找不到 pg_config 可执行文件
Posted
技术标签:
【中文标题】如何修复错误:在 Elastic Beanstalk 上永久找不到 pg_config 可执行文件【英文标题】:How to fix Error: pg_config executable not found on Elastic Beanstalk permanently 【发布时间】:2019-12-08 12:08:07 【问题描述】:我有一个在 Elastic Beanstalk 上与 PostgreSQL 配合使用的 Django 项目。 我在部署时发现了下一个错误:
Error: pg_config executable not found.
pg_config is required to build psycopg2 from source.
Please add the directory containing pg_config to the $PATH or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
我跟着psycopg2 on elastic beanstalk - can't deploy app 解决了它,它成功了!但过了一段时间,亚马逊似乎更新了我的虚拟环境,错误又回来了,所以我必须回去一遍又一遍地做同样的事情。
我也尝试过直接从 Elastic Beanstalk 面板配置数据库实例,但没有任何变化。
数据库在 RDS 上,我认为重要的是,当我在我的实例上手动安装 psycopg2 并重新部署一切正常时,我什至在此之后进行了几次部署,但问题不存在过了一会儿。
我真的很想知道如何一劳永逸地解决它。提前致谢。
【问题讨论】:
看看这个答案:***.com/a/36189852 【参考方案1】:它试图从源代码构建 postgres 驱动程序。 你可以用几种不同的方式来处理这个问题。例如,您可以选择从二进制包安装驱动程序,而不是从源代码构建驱动程序。
在你的 requirements.txt 中,替换
psycopg2==2.8.5
与
psycopg2-binary==2.8.5
如果您在部署到 Beanstalk 时坚持从源代码构建它,则需要使用平台挂钩来预安装编译它所需的依赖项。 AL2 实例非常简单,因此您需要大致执行以下操作:
添加目录结构.platform/hooks/prebuild 在预构建中,创建一个脚本,例如“10_install_dependencies.sh” 在脚本顶部您需要 #!/usr/bin/sh使用此脚本添加所需的依赖项。例如,对于您需要的 posgres 开发库
sudo yum install -y <yum-packahe-that-you-need>
您可能最终还必须安装构建 psycopg 所需的其他开发库...
【讨论】:
非常感谢;使用psycopg2-binary
效果很好
对我来说使用 psycopg2-binary==2.8.5 解决了这个问题,但如果我转到最新的 2.9.1,它会再次开始失败。谢谢。以上是关于如何修复错误:在 Elastic Beanstalk 上永久找不到 pg_config 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在部署 Flask 应用程序时修复此 Elastic Beanstalk 错误:在您的系统上找不到 Python 3.7.0
如何在删除空S3 Elastic Beanstalk时修复“拒绝访问”?
如何修复 AWS Elastic Beanstalk 部署的 Rails 5.2 应用程序捆绑程序问题
无法修复 404 NOT FOUND 错误,因为我无法查看和访问由 Elastic beanstalk 创建的 ec2 中的文件