wsgi.py не работает на ubuntu apache2 mod_wsgi

Это мой файл VirtualHost;

    Alias /static/ /home/ubuntu/app/boomset/static_root/
    <Directory /home/ubuntu/app/boomset/static_root>
            Require all granted
    </Directory>
    WSGIDaemonProcess boomset.com python-path=/home/ubuntu/app/boomset:/home/ubuntu/app/venv/lib/python2.7/site-packages
    WSGIProcessGroup boomset.com
    WSGIScriptAlias / /home/ubuntu/app/boomset/boomset/wsgi.py


    <Directory /home/ubuntu/app/boomset/boomset>
            <Files wsgi.py>
                    Require all granted
            </Files>
    </Directory>

а это мой файл wsgi.py;

"""
WSGI config for boomset project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
"""

import os
import sys
import site

sys.path.append('/home/ubuntu/app')
sys.path.append('/home/ubuntu/app/boomset')
sys.path.append('/home/ubuntu/app/boomset/boomset')
site.addsitedir('/home/ubuntu/app/venv/lib/python2.7/site-packages')

from raven.contrib.django.raven_compat.middleware.wsgi import Sentry

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "boomset.settings")

from django.core.wsgi import get_wsgi_application
application = Sentry(get_wsgi_application())

вот мой файл журнала ошибок apache. Rest Framework Decorator выдает ошибку, но для меня это не имеет никакого смысла. Я застрял!

[Tue Jan 27 03:42:17.382849 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]   File "/home/ubuntu/app/venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 206, in __call__
[Tue Jan 27 03:42:17.382920 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]     response = self.get_response(request)
[Tue Jan 27 03:42:17.382933 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]   File "/home/ubuntu/app/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 196, in get_response
[Tue Jan 27 03:42:17.387153 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]     response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
[Tue Jan 27 03:42:17.387171 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]   File "/home/ubuntu/app/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 234, in handle_uncaught_exception

....

[Tue Jan 27 03:42:17.387714 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875]     from rest_framework.decorators import action
[Tue Jan 27 03:42:17.387733 2015] [:error] [pid 2926:tid 140170072491776] [remote 64.79.151.225:16875] ImportError: cannot import name action

person user3461147    schedule 27.01.2015    source источник


Ответы (1)


Возможно ли, что ваш исходный код зависит от Django REST 2.x, но установленной версии 3.x? Потому что метод action удален из версии 3.x и это может быть причиной ошибки импорта. Вы можете проверить ссылки ниже

https://github.com/tomchristie/django-rest-framework/blob/version-2.4.x/rest_framework/decorators.py

https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/decorators.py

Я раньше не использовал site.addsitedir и Sentry(get_wsgi_application()), но вроде все нормально.

person brsbilgic    schedule 27.01.2015