我按照本地aws beantalk官方文档link中的建议,在本地ubuntu计算机上创建了python virtualenv。安装了Django然后pip freeze > requirements.txt
。我的requirements.txt文件具有Django == 2.1.1
当我eb deploy
时,我就准备好健康绿色状态。但是当我进入ec2并检查软件包列表时
eb ssh
pip freeze
我完全看不到Django。 然后我尝试手动安装django:
pip install django
它安装了Django==1.11.20
,所以我认为beantalk aws ec2没有在requirements.txt中提到的Django版本,因此pip从未安装它。那正确吗?
如果是这样,我们每次使用beantalk时都必须手动安装具有正确版本的软件包
谢谢
答案 0 :(得分:0)
Elastic Beanstalk使用requirements.txt来确定要在运行您的应用程序的EC2实例上安装哪个软件包。因此,在requirements.txt中只有'Django == 2.1.1'不会将其安装在实例上。
要安装此软件包,还需要执行以下步骤:
注意:软件包目录根目录中的“ .ebextensions”文件夹为 用于配置Elastic Beanstalk实例。这个中的文件 文件夹使用.config扩展名,其中包含YAML代码, 以字母顺序阅读,以便它们可以在特定的位置运行 命令在实例上进行各种配置的部署。
示例〜/您的应用程序名称/.ebextensions/django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: your_application_name/wsgi.py
此设置WSGIPath指定了Elastic Beanstalk用于启动应用程序的WSGI脚本的位置。