在我的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行))
从命令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选项。
答案 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
。