Django 1.9 + Passenger на Dreamhost: веб-приложение не может быть запущено

Я пытаюсь использовать Django 1.9 (с Python 3.4) на общем хостинге Dreamhost.

Я следовал этому руководству: https://brobin.me/blog/2015/03/deploying-django-with-virtualenv-on-dreamhost/

И теперь мой пассажир_wsgi.py выглядит так:

import sys, os
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/my_project')

INTERP = os.path.expanduser("~/venv/bin/python")

if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)

sys.path.insert(0,'$HOME/venv/bin')
sys.path.insert(0,'$HOME/venv/lib/python3.4/site-packages/django')
sys.path.insert(0,'$HOME/venv/lib/python3.4/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = "my_project.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Проблема заключается в запуске Пассажира, когда я захожу на сайт, Пассажир показывает эту ошибку:

Web application could not be started

An error occurred while starting the web application. It exited before signalling successful startup back to Phusion Passenger. Please read this article for more information about this problem.

Raw process output:

Traceback (most recent call last):
  File "/dh/passenger/helper-scripts/wsgi-loader.py", line 320, in <module>
    app_module = load_app()
  File "/dh/passenger/helper-scripts/wsgi-loader.py", line 61, in load_app
    return imp.load_source('passenger_wsgi', startup_file)
  File "passenger_wsgi.py", line 8, in <module>
    if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)
  File "/usr/lib/python2.7/os.py", line 312, in execl
    execv(file, args)
OSError: [Errno 2] No such file or directory

Я действительно не понимаю, как работает Passenger, я думаю, что проблема связана с это, но я не могу понять, как заставить его работать.

Любая помощь будет оценена. Большое Вам спасибо.


person David Goudet    schedule 10.07.2016    source источник


Ответы (1)


Это было решено с помощью правильных настроек в файлеpassage_wsgi.py:

import sys, os
cwd = os.getcwd()
sys.path.append(cwd)
project_location = cwd + '/my_project'
sys.path.insert(0,project_location)

INTERP = os.path.expanduser("/home/user/python/Python-3.4.3/venv/bin/python")

if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)

sys.path.insert(0,'$HOME/python/Python-3.4.3/venv/bin')
sys.path.insert(0,'$HOME/python/Python-3.4.3/venv/lib/python3.4/site-packages/django')
sys.path.insert(0,'$HOME/python/Python-3.4.3/venv/lib/python3.4/site-packages')


os.environ['DJANGO_SETTINGS_MODULE'] = "my_project.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
person David Goudet    schedule 11.07.2016
comment
Вы используете это на DreamHost VPS или каком другом продукте? - person Stefano Maffulli; 11.07.2016
comment
Привет! Виртуальный хостинг Dreamhost - person David Goudet; 11.07.2016