django - 如何修复错误 : pg_config executable not found on Elastic Beanstalk permanently

标签 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 并重新部署一切正常时,我什至在此之后进行了几次部署,问题不存在,但经过一段时间后尽管。

我真的很想知道如何一劳永逸地解决它。提前致谢。

最佳答案

它试图做的是从源代码构建 postgres 驱动程序。
您可以通过几种不同的方式来处理这个问题。例如,您可以选择从二进制包安装驱动程序,而不是从源代码构建它们。
在您的 requirements.txt 中,替换

psycopg2==2.8.5
psycopg2-binary==2.8.5
如果在部署到 Beanstalk 时确实坚持从源代码构建它,则需要使用平台 Hook 来预安装编译它所需的依赖项。 AL2 实例非常简单,因此您需要大致执行以下操作:
  • 添加目录结构 .platform/hooks/prebuild
  • 在预构建中,创建一个脚本,类似于“10_install_dependencies.sh”
  • 在脚本的顶部,您将需要 #!/usr/bin/sh

  • 使用此脚本添加所需的依赖项。例如,对于 posgres 开发库,您将需要
    sudo yum install -y <yum-packahe-that-you-need>
    
    您可能最终还必须安装构建 psycopg 所需的其他开发库...

    关于django - 如何修复错误 : pg_config executable not found on Elastic Beanstalk permanently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57282839/

    相关文章:

    Python 正在向后打印一个列表,但不打印其他列表

    python - Heroku 上的 django Whitenoise 静态文件在本地不可用

    postgresql - 如何按日期顺序选择总计为任意数量的记录?

    python - 与 PostgreSQL 全文搜索的部分匹配

    python - Postgresql更新导致: 'django.db.utils.OperationalError: could not access file "$libdir/postgis-2. 4": No such file or directory'

    python - AWS Cloudformation,使用 Python 3 从键获取值的最佳方式

    python - 我如何在基于类的 View 中使用自定义函数

    django - 可以通过Django的admin监控django_admin_log吗?

    python - AWS CDK 管道 : How to access internal stack values in post-stage steps?

    regex - CloudFormation 参数动态正则表达式