Приложение Django выдает ошибки при развертывании в производство с использованием virtualenv, wsgi и apache - PullRequest
0 голосов
/ 05 июня 2018

Попытка доставить мое приложение в производство было беспокойным.

Я получаю синтаксическую ошибку, когда проверяю журнал ошибок apache после звонка на сайт.

Я сделал все каквидел в разных источниках онлайн, но я не могу передать ошибку.Основная проблема в том, что я даже не понимаю, почему синтаксическая ошибка внутренней функции Django, когда приложение обычно работает над разработкой без заминок.

Ошибка, которую я получаю, показана ниже

[Tue Jun 05 08:13:34.179813 2018] [:error] [pid 1390] [remote ::1:0]   File "/var/www/html/app_folder/app/index.wsgi", line 29, in <module>
[Tue Jun 05 08:13:34.179860 2018] [:error] [pid 1390] [remote ::1:0]     import django.core.handlers.wsgi
[Tue Jun 05 08:13:34.179869 2018] [:error] [pid 1390] [remote ::1:0]   File "/home/user/.virtualenvs/app/lib/python3.6/site-packages/django/__init__.py", line 1, in <module>
[Tue Jun 05 08:13:34.179900 2018] [:error] [pid 1390] [remote ::1:0]     from django.utils.version import get_version
[Tue Jun 05 08:13:34.179907 2018] [:error] [pid 1390] [remote ::1:0]   File "/home/user/.virtualenvs/app/lib/python3.6/site-packages/django/utils/version.py", line 2, in <module>
[Tue Jun 05 08:13:34.179954 2018] [:error] [pid 1390] [remote ::1:0]     import functools
[Tue Jun 05 08:13:34.179982 2018] [:error] [pid 1390] [remote ::1:0]   File "/home/user/.virtualenvs/app/lib/python3.6/functools.py", line 254
[Tue Jun 05 08:13:34.179986 2018] [:error] [pid 1390] [remote ::1:0]     cls, func, *args = args
[Tue Jun 05 08:13:34.179988 2018] [:error] [pid 1390] [remote ::1:0]                ^
[Tue Jun 05 08:13:34.179990 2018] [:error] [pid 1390] [remote ::1:0] SyntaxError: invalid syntax

Вот содержимое моего wsgi-файла:

import os
import sys
import site
#import django

# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('/home/user/.virtualenvs/app/lib/python3.6/site-packages')

# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/html/app_folder')
sys.path.append('/var/www/html/app_folder/app')


os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'

# Activate your virtual env
activate_env=os.path.expanduser("/home/user/.virtualenvs/app/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))


import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Django version 2.0.4
Python version 3.6

Apache Config:

<VirtualHost *:9000>
    ServerAdmin webmaster@server.com
    ServerName test.server.com
    ServerAlias test.server.com

    WSGIDaemonProcess app processes=5 python-path=/var/html/www/app_folder/app:/home/user/.virtualenvs/app/lib/python3.6/site-packages:/home/user/.virtualenvs/app/lib/python3.6/ threads=1
    WSGIProcessGroup app

    WSGIScriptAlias / /var/www/html/app_folder/app/index.wsgi
    Alias /static/ /var/www/html/app_folder/app/static/

    <Location "/static/">
        Options -Indexes
    </Location>

Мы будем очень признательны за вашу помощь, так как это чрезвычайная ситуация.

...