【问题标题】:AWS beanstalk cant install psycopg2AWS beanstalk 无法安装 psycopg2
【发布时间】:2020-05-17 05:52:48
【问题描述】:

在我的 requirements.txt 的 pip 安装过程中,我在将我的 Django 应用程序部署到免费套餐中的 AWS 时遇到问题。

正如我在这里看到的,这个问题似乎与 scipy 有关:

AWS Elastic Beanstalk failed to install Python package using requirements.txt Git Pip

问题已解决,因为他可以升级到 t2.medium,但这需要付费帐户。 免费层有什么提示吗?

'--no-cache-dir' 之类的选项可以使它工作吗?有没有办法强制它(因为 pip 安装是自动完成的)

还有其他方法可以在 AWS 上部署 Django 应用程序吗?

编辑:其实是因为psycopg2..

收集 psycopg2==2.8.4(来自 -r /opt/python/ondeck/app/requirements.txt(第 4 行))

正在下载https://files.pythonhosted.org/packages/84/d7/6a93c99b5ba4d4d22daa3928b983cec66df4536ca50b22ce5dcac65e4e71/psycopg2-2.8.4.tar.gz (377kB)

命令 python setup.py egg_info 的完整输出:

运行 egg_info

创建 pip-egg-info/psycopg2.egg-info

编写 pip-egg-info/psycopg2.egg-info/PKG-INFO

将dependency_links写入pip-egg-info/psycopg2.egg-info/dependency_links.txt

将顶级名称写入 pip-egg-info/psycopg2.egg-info/top_level.txt

编写清单文件'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

/usr/lib64/python3.6/distutils/dist.py:261:用户警告:未知分发选项:'project_urls'

warnings.warn(msg)

警告:manifest_maker:未找到标准文件“-c”

错误:找不到 pg_config 可执行文件。

pg_config 是从源代码构建 psycopg2 所必需的。请添加目录

包含 pg_config 到 $PATH 或指定完整的可执行路径

选项:

python setup.py build_ext --pg-config /path/to/pg_config build ...

或使用 'setup.cfg' 中的 pg_config 选项。

【问题讨论】:

  • 让我们退后一步。这里没有任何内容向我们表明您遇到的问题与链接问题中的问题相同。 “我有问题”是什么意思?您看到的确切错误消息是什么,带有回溯?见How to Ask
  • 抱歉让我添加我的错误信息
  • 好的非常抱歉,刚刚了解如何查看日志,之前失败了!
  • psycopg2-binary有很多预编译的二进制轮子。尝试pip install psycopg2-binary(或将其添加到requirements.txt 而不是psycopg2)。

标签: python amazon-web-services pip amazon-elastic-beanstalk


【解决方案1】:

根据@phd 评论:pip install psycopg2-binary 做到了这一点,而不是 pip install psycopg2

【讨论】:

    【解决方案2】:

    虽然我喜欢被接受的解决方案的简单性,但psycopg2-binary installation notes 建议不要将其用于生产:

    二进制包是开发和测试的实用选择,但在生产中建议使用从源代码构建的包。

    我不知道这是否真的是一个大问题,但为了完整起见,我将添加一个替代方案:

    Error: pg_config executable not found. 也可以通过使用yum 安装postgresql-devel 来修复。

    在 Amazon Linux 2 上,您可以使用 .platform hooks 执行此操作。例如,在您的应用存储库中(在您的 .ebextensions 旁边),添加一个具有以下内容的 .platform/hooks/prebuild/01_install_yum_packages.sh 文件:

    #!/bin/bash
    yum -y install postgresql-devel
    

    如文档中所述,您必须先设置此文件的执行权限,然后再将其提交给您的 repo。例如。 chmod +x 01_install_yum_packages.sh.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-23
      • 2020-11-24
      • 2020-10-13
      • 2018-04-29
      • 2017-12-05
      • 2021-11-06
      • 2020-07-05
      • 1970-01-01
      相关资源
      最近更新 更多