如何修复错误:在 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 中的文件

Elastic AMP监控.NET程序性能

分布式作业系统 Elastic-Job-Lite 源码分析 —— 自诊断修复