python - Django 应用程序使用 virtualenv、wsgi 和 apache 在部署到生产时抛出错误
问题描述
试图将我的应用程序投入生产一直很忙。
在我调用该站点后检查 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
阿帕奇配置:
<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>
非常感谢您的帮助,因为这是紧急情况。