无法执行 Python 脚本文件“/home/dev/project/project/wsgi.py”。处理 WSGI 脚本“/home/dev/project/project/wsgi.py”时发生异常

Failed to exec Python script file '/home/dev/project/project/wsgi.py'.Exception occurred processing WSGI script '/home/dev/project/project/wsgi.py'

我正尝试在 Hostinger 提供的 VPS 上托管我的 django 网站。服务器 运行ning Ubuntu 20.04 64 位。我通过 运行ning 命令在没有 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: Expecting property name enclosed in double quotes: line 4 column 1 (char 71)