How can I tell Amazon Elastic Beanstalk to use Python 2.7.3 when running Django without creating a custom AMI?
It seems like it should be straightforward to tell elastic beanstalk to use a later version of python than 2.6. I would really like to not create a custom AMI, as that seems like over-complicating the issue.
I need python 2.7.3, and I need to use virtualenv 1.8.X. I've noticed that using a later version of virtualenv than the amazon deployment tutorial(1.7.X) seems to negatively affect 'git aws.push', but I don't have an option in this case due to client requirements.
I've looked into creating custom container commands in the .ebextensions/*.config, such as:
container_commands:
update_python:
command: "sudo yum -y install python27; sudo ln -sf `which python2.7` /usr/bin/python"
but this breaks yum, which might be ok, but I'd prefer to keep the system intact.
I could install python27 with yum, as demonstrated above, and keep python26 as the default python, but I don't know how to make sure that the server uses python27 to launch Django. So an alternate question would be, how do I tell elastic beanstalk to use python27 to run Django instead of the default python? I can easily get python27 installed on the system as an alternate python, I just have to call it explicitly.
I hope this question isn't too broad. I'm trying to come up with multiple angles to solve this problem. Thanks for any help.
I ran into this exact same problem and the solution was quite simple.
Assuming that your PATH environment variable points to this folder:
<path to unzipped EB CLI package>/eb/linux/python2.7/
Go there and edit the file named "eb"
$cd <path to unzipped EB CLI package>/eb/linux/python2.7/
$vim eb
On the first line where it says "!#/usr/bin/env python" change it to "!#/usr/bin/env python2.7"
And then you should be alright!
How can I tell Amazon Elastic Beanstalk to use Python 2.7.3 when running Django without creating a custom AMI?
It seems like it should be straightforward to tell elastic beanstalk to use a later version of python than 2.6. I would really like to not create a custom AMI, as that seems like over-complicating the issue.
I need python 2.7.3, and I need to use virtualenv 1.8.X. I've noticed that using a later version of virtualenv than the amazon deployment tutorial(1.7.X) seems to negatively affect 'git aws.push', but I don't have an option in this case due to client requirements.
I've looked into creating custom container commands in the .ebextensions/*.config, such as:
container_commands:
update_python:
command: "sudo yum -y install python27; sudo ln -sf `which python2.7` /usr/bin/python"
but this breaks yum, which might be ok, but I'd prefer to keep the system intact.
I could install python27 with yum, as demonstrated above, and keep python26 as the default python, but I don't know how to make sure that the server uses python27 to launch Django. So an alternate question would be, how do I tell elastic beanstalk to use python27 to run Django instead of the default python? I can easily get python27 installed on the system as an alternate python, I just have to call it explicitly.
I hope this question isn't too broad. I'm trying to come up with multiple angles to solve this problem. Thanks for any help.
I ran into this exact same problem and the solution was quite simple.
Assuming that your PATH environment variable points to this folder:
<path to unzipped EB CLI package>/eb/linux/python2.7/
Go there and edit the file named "eb"
$cd <path to unzipped EB CLI package>/eb/linux/python2.7/
$vim eb
On the first line where it says "!#/usr/bin/env python" change it to "!#/usr/bin/env python2.7"
And then you should be alright!
0 commentaires:
Enregistrer un commentaire