如何解决错误:在Elastic Beanstalk上永久找不到pg_config可执行文件

时间:2019-07-31 03:40:21

标签: django postgresql amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我有一个在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并重新部署一切正常时,在那之后我什至进行了几次部署,但问题并不存在,但是它过了一会。

我真的很想知道如何彻底解决它。预先感谢。

1 个答案:

答案 0 :(得分: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所需的其他开发库...