【发布时间】:2013-02-11 12:14:22
【问题描述】:
如何在不创建自定义 AMI 的情况下让 Amazon Elastic Beanstalk 在运行 Django 时使用 Python 2.7.3?
告诉 elastic beanstalk 使用比 2.6 更高版本的 python 似乎应该很简单。我真的不想创建自定义 AMI,因为这似乎使问题过于复杂。
我需要 python 2.7.3,我需要使用 virtualenv 1.8.X。我注意到使用比亚马逊部署教程(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,这可能没问题,但我更愿意保持系统完好无损。
我可以使用 yum 安装 python27,如上所示,并将 python26 保留为默认 python,但我不知道如何确保服务器使用 python27 启动 Django。所以另一个问题是,我如何告诉 elastic beanstalk 使用 python27 来运行 Django 而不是默认的 python?我可以轻松地将 python27 作为备用 python 安装在系统上,我只需要显式调用它。
我希望这个问题不会太宽泛。我试图想出多个角度来解决这个问题。感谢您的帮助。
【问题讨论】:
-
如果您知道 Elastic Beanstalk 将它保存在 virtualenv python 的位置,那么只需替换那个而不是真实的。不过,我不确定 virtualenvs 的差异。
标签: django python-2.7 amazon-web-services amazon-elastic-beanstalk