django-admin.py и путь python на EC2 Amazon Beanstalk

Я развернул приложение django на Elastic Benastalk, но мои команды не работают, и я думаю, что проблема в том, что django-admin.py не находится в $PYTHONPATH , я хотел бы добавить мое приложение в путь python, но я не знаю, t знать, каков точный путь к экземпляру EC2. На самом деле я нашел его под: /opt/python/bundle/3/app (я использовал команду «find» через SSH) … но является ли это фиксированным и надежным путем? ps: WTF – это «3» ?? (наверняка не версия или количество моих разворачиваний ^ _ ^)

ОБНОВИТЬ:

если я подключился к /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 🙂

2 Solutions collect form web for “django-admin.py и путь python на EC2 Amazon Beanstalk”

Сообщение:

  File "manage.py", line 3, in <module> from django.core.management import execute_from_command_line ImportError: No module named django.core.management 

не потому, что ваше приложение не находится в PYTHONPATH, а потому, что оно не может найти ваше приложение django вообще. Значение вашего каталога сайтов-пакетов не в PYTHONPATH.

Попробуйте найти каталог сайтов-пакетов на вашем сервере, и это должно быть в PYTHONPATH. Я не использовал приложение python с Elastic Beanstalk, но я считаю, что он может использовать виртуальную среду python . В этом случае вам необходимо настроить виртуальную среду перед запуском python ./manage shell

Вы можете добавить option_name если вам нужно изменить PYTHONPATH или установить любую переменную среды в целом.

В .ebextensions/myapp-env.config (или независимо от вашего имени * .config):

 option_settings: - option_name: PYTHONPATH value: /opt/python/ondeck/app/myapp:$PYTHONPATH 
  • Python GIL: блокировка django save ()?
  • Какие поля модели в учебнике django-haystack индексируются?
  • Как насчет наличия SingletonModel в Django?
  • Как создать поле пароля в модели django
  • Переменная именования, наилучшая конвенция
  • Перенаправление URL-адреса Django
  • Как обрабатывать загрузку файлов через запрос PUT в Django?
  • Случайная ошибка ctypes, импортирующая numpy из приложения mod_wsgi django
  • Python - лучший язык программирования в мире.