我将我的第一个应用程序(Flask)部署到EB并且遇到了麻烦。使用PostgreSQL需要我安装psycopg2,但我无法弄清楚如何让它运行。
我在这篇文章(Psycopg2 on Amazon Elastic Beanstalk)以及这篇文章(https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/)中看到了我需要使用以下代码添加文件名change(p, y, 5)
:
.elasticbeanstalk/01_packages.config
我已尝试使用packages:
yum:
postgresql-devel: []
进行不同的变化,但仍然没有运气。下面附有我的错误日志。
postgresql93-devel: []
似乎很清楚我需要安装psycopg2,但我不确定我可以采取哪些其他步骤来实现这一目的。
答案 0 :(得分:8)
我解决了,你需要先打开EC2实例,然后像这样安装
sudo yum install postgresql-devel
然后部署你的EB
答案 1 :(得分:6)
很有趣,对我来说 Amazon Linux 2 的解决方案最终是最初的问题-
添加01_package.conf
,其中包含
packages:
yum:
postgresql-devel: []
此外,这与我在网上发现的几乎所有针对使用postgresql96-devel
或其他编号的答案都相反。我发现我需要在通过SSH进入EC2实例并查看所有可用的Yum软件包后,将软件包名称postgresql-devel
设置为 。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ yum list available | grep 'postgresql'
freeradius-postgresql.x86_64 3.0.13-10.amzn2 amzn2-core
pcp-pmda-postgresql.x86_64 3.12.2-5.amzn2 amzn2-core
postgresql.x86_64 10.4-5.amzn2.0.2 amzn2extra-postgresql10
postgresql-contrib.x86_64 10.4-5.amzn2.0.2 amzn2extra-postgresql10
postgresql-devel.x86_64 10.4-5.amzn2.0.2 @amzn2extra-postgresql10
postgresql-docs.x86_64 10.4-5.amzn2.0.2 amzn2extra-postgresql10
...
,我看到它只是postgres-devel
。一旦我将其更改为可以部署。如果在运行eb
之前将git与eb deploy
一起使用,请确保提交更改-或至少将更改添加到git临时区域并也与eb deploy --staged
一起运行。那使我不知所措地想了想我已经尝试过软件包名称的问题了。
我发现answers on this stackoverflow post here也很有帮助。祝你好运!
我最终需要一个比上述答案(发布时的psql
)默认的11.x
客户端(9.2
)更新的客户端。 This answer here是使它起作用的唯一方法。为后代粘贴的答案...
packages:
yum:
amazon-linux-extras: []
commands:
01_postgres_activate:
command: sudo amazon-linux-extras enable postgresql11
02_postgres_install:
command: sudo yum install -y postgresql-devel
答案 2 :(得分:0)
即使在安装postgresql93-devel后,我仍然收到错误"没有名为psycopg2"的模块。要解决这个问题,我必须使用eb ssh连接到我的环境,然后执行sudo pip install psycopg2
来解决这个问题。