如何在运行Django而不创建自定义AMI时告诉Amazon Elastic Beanstalk使用Python 2.7.3?
告诉弹性beantalk使用高于2.6的更高版本的python似乎应该很简单。我真的不想创建自定义AMI,因为这似乎使问题变得过于复杂。
我需要python 2.7.3,并且我需要使用virtualenv1.8.X。我已经注意到,使用比Amazon部署教程(1.7.X)更高的virtualenv版本似乎会对'git aws.push'产生负面影响,但由于客户端要求,在这种情况下我没有选择。
我研究过在.ebextensions / *。config中创建自定义容器命令,例如:
container_commands:
update_python:
command: "sudo yum -y install python27; sudo ln -sf `which python2.7` /usr/bin/python"
但这会破坏百胜,这可能还可以,但我希望保持系统完整。
如上所示,我可以使用yum安装python27,并将python26保留为默认python,但是我不知道如何确保服务器使用python27来启动Django。因此,另一个问题是,如何告诉Elastic beantalk使用python27来运行Django而不是默认的python?我可以很容易地将python27作为备用python安装在系统上,我只需要显式调用它即可。
我希望这个问题不会太广泛。我试图提出多个角度来解决这个问题。谢谢你的帮助。
最佳答案
我遇到了这个完全相同的问题,解决方案非常简单。
假设您的PATH环境变量指向此文件夹:
<path to unzipped EB CLI package>/eb/linux/python2.7/
去那里编辑名为“ eb”的文件
$cd <path to unzipped EB CLI package>/eb/linux/python2.7/
$vim eb
在第一行显示“!#/ usr / bin / env python”的第一行,将其更改为“!#/ usr / bin / env python2.7”
然后您应该没事!