在beantalk t2.micro ec2上找不到Django 2.1.1

时间:2019-03-24 08:57:35

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

我按照本地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时都必须手动安装具有正确版本的软件包

谢谢

1 个答案:

答案 0 :(得分:0)

Elastic Beanstalk使用requirements.txt来确定要在运行您的应用程序的EC2实例上安装哪个软件包。因此,在requirements.txt中只有'Django == 2.1.1'不会将其安装在实例上。

要安装此软件包,还需要执行以下步骤:

  1. 在包的根目录中创建一个名为.ebextensions的新目录。
  

注意:软件包目录根目录中的“ .ebextensions”文件夹为   用于配置Elastic Beanstalk实例。这个中的文件   文件夹使用.config扩展名,其中包含YAML代码,   以字母顺序阅读,以便它们可以在特定的位置运行   命令在实例上进行各种配置的部署。

  1. 在.ebextensions目录中,添加一个名为django.config的配置文件,其内容如下:

示例〜/您的应用程序名称/.ebextensions/django.config

option_settings:
 aws:elasticbeanstalk:container:python:
  WSGIPath: your_application_name/wsgi.py

此设置WSGIPath指定了Elastic Beanstalk用于启动应用程序的WSGI脚本的位置。

  1. 就是这样。现在,部署您的EB应用程序,并检查是否已安装Django。