Я развернул приложение django на Elastic Benastalk, но мои команды не работают, и я думаю, что проблема в том, что django-admin.py не находится в $PYTHONPATH
, я хотел бы добавить мое приложение в путь python, но я не знаю, каков точный путь к экземпляру EC2.
На самом деле я нашел его под: /opt/python/bundle/3/app
(я использовал команду "найти" через SSH)... но это фиксированный и надежный путь?
ps: WTF - это "3"?? (наверняка не версия или количество моих разворачиваний ^ _ ^)
UPDATE:
если я cd до /opt/python/bundle/3/app/myappname
и выполните:
python manage.py shell
Я получаю:
File "manage.py", line 3, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
РЕШИТЬ!
Amazon Beanstalk использует virtualenv (как и я сам локально), чтобы активировать его, вы должны:
source /opt/python/run/venv/bin/activate
cd /opt/python/current/app
python manage.py commandname
НО, чтобы использовать пользовательские команды управления (поэтому мне нужно получить доступ к оболочке django на моем экземпляре EC2), вам нужно добавить приложение в путь python, а также все переменные среды, используемые вашим приложением, поэтому я сделал:
vi /home/ec2-user/.bash_profile
и добавил:
export PYTHONPATH=$PYTHONPATH:/opt/python/current/app
и мои переменные env... теперь это работает!:)
Чтобы автоматически активировать virtualenv и иметь возможность использовать оболочку django, как только регистрируется через ssh, можно добавить:
source /opt/python/run/venv/bin/activate
cd /opt/python/current/app
в .bash_profile:)