无法执行 Python 脚本文件 '/home/dev/project/project/wsgi.py'。处理 WSGI 脚本 '/home/dev/project/project/wsgi.p



我正试图在Hostinger提供的VPS上托管我的django网站。服务器运行在Ubuntu 20.04 64位上。我通过运行命令使网站在没有apache2的情况下运行python manage.py runserver
在我设置了apache2服务器之后,我得到了500内部服务器错误。我检查了错误日志,它显示了这个

[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388] mod_wsgi (pid=22109): Failed to exec Python script file '/home/dev/medovation_inc/medovation_inc/wsgi.py'.
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388] mod_wsgi (pid=22109): Exception occurred processing WSGI script '/home/dev/medovation_inc/medovation_inc/wsgi.py'.
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388] Traceback (most recent call last):
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/medovation_inc/wsgi.py", line 16, in <module>
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     application = get_wsgi_application()
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     django.setup(set_prefix=False)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 83, in __getattr__
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     self._setup(name)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 70, in _setup
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     self._wrapped = Settings(settings_module)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 177, in __init__
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     mod = importlib.import_module(self.SETTINGS_MODULE)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     return _bootstrap._gcd_import(name[level:], package, level)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/home/dev/medovation_inc/medovation_inc/settings.py", line 18, in <module>
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     config = json.load(config_file)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/usr/lib/python3.8/json/__init__.py", line 293, in load
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     return loads(fp.read(),
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     return _default_decoder.decode(s)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]   File "/usr/lib/python3.8/json/decoder.py", line 353, in raw_decode
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388]     obj, end = self.scan_once(s, idx)
[wsgi:error] [pid 22109:tid 140485106763520] [remote 49.206.15.222:58388] json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 4 column 1 (char 71)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495] mod_wsgi (pid=22109): Failed to exec Python script file '/home/dev/medovation_inc/medovation_inc/wsgi.py'.
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495] mod_wsgi (pid=22109): Exception occurred processing WSGI script '/home/dev/medovation_inc/medovation_inc/wsgi.py'.
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495] Traceback (most recent call last):
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/medovation_inc/wsgi.py", line 16, in <module>
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     application = get_wsgi_application()
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     django.setup(set_prefix=False)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 83, in __getattr__
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     self._setup(name)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 70, in _setup
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     self._wrapped = Settings(settings_module)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 177, in __init__
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     mod = importlib.import_module(self.SETTINGS_MODULE)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     return _bootstrap._gcd_import(name[level:], package, level)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/home/dev/medovation_inc/medovation_inc/settings.py", line 18, in <module>
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     config = json.load(config_file)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/usr/lib/python3.8/json/__init__.py", line 293, in load
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     return loads(fp.read(),
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     return _default_decoder.decode(s)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]   File "/usr/lib/python3.8/json/decoder.py", line 353, in raw_decode
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495]     obj, end = self.scan_once(s, idx)
[wsgi:error] [pid 22109:tid 140485140334336] [remote 49.206.15.222:57495] json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 4 column 1 (char 71)

这是我的apache2配置文件
```
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
Alias /static /home/dev/project_name/static
<Directory /home/dev/project_name/static>
Require all granted
</Directory>
Alias /media /home/dev/project_name/media
<Directory /home/dev/project_name/media>
Require all granted
</Directory>
<Directory /home/dev/project_name/project_name>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/dev/project_name/project_name/wsgi.py
WSGIDaemonProcess django_app python-path=/home/dev/project_name python-home=/home/dev/project_name/venv
WSGIProcessGroup django_app
```
这是我的settings.py文件
from pathlib import Path
import os
import json
with open("/etc/config.json") as config_file:
config = json.load(config_file)
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = config['SECRET_KEY']
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['server_ip_address']

# Application definition
INSTALLED_APPS = [
'website.apps.WebsiteConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
.
.
.
continued

错误表明您试图在此处加载的JSON文件:

with open("/etc/config.json") as config_file:
config = json.load(config_file)

不是正确的JSON,因为JSON文件的第4行引用错误(您可能使用单引号而不是双引号(:

JSONDecodeError:需要用双引号括起来的属性名称:第4行第1列(字符71(

最新更新