AWS beantalk无法安装psycopg2

时间:2020-01-31 14:37:19

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

在我的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:UserWarning:未知分发选项:“ project_urls”

warnings.warn(msg)

警告:manifest_maker:找不到标准文件'-c'

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

要从源代码构建psycopg2,需要

pg_config。请添加目录

将pg_config包含到$ PATH或使用

指定完整的可执行路径

选项:

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

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

2 个答案:

答案 0 :(得分:3)

根据@phd注释:pip install psycopg2-binary代替了pip install psycopg2

答案 1 :(得分:0)

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

<块引用>

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

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

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

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

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

如文档中所述,您必须在将此文件提交给您的存储库之前为其设置执行权限。例如。 chmod +x 01_install_yum_packages.sh