9

Gunicorn を実行しようとしましたが、エラーが発生しました (下に貼り付けました)。現在、Gunicorn またはその依存関係の 1 つが settings.LOGGING を読み取ろうとしているように見えますが、settings.py ファイルは settings.LOGGING を定義していないようです。

したがって、Gunicorn + の依存関係に必要なものが含まれるように、追加できるリテラルまたはその他のコードの種類を知りたいと思います。

コード貼り付け:

(socialenv)jonathan@li393-189:~/directory$ python manage.py run_gunicorn 0.0.0.
0:8000
2013-04-14 17:40:13 [26464] [INFO] ガンコーン 0.17.2 を開始
2013-04-14 17:40:13 [26464] [情報] リッスン: http://0.0.0.0:8000 (26464)
2013-04-14 17:40:13 [26464] [INFO] ワーカーの使用: 同期
2013-04-14 17:40:13 [26469] [情報] pid でワーカーを起動: 26469
2013-04-14 17:40:13 [26469] [エラー] ワーカー プロセスの例外:
トレースバック (最新の呼び出しが最後):
  spawn_worker のファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py」の 485 行目
    worker.init_process()
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py"、100 行目、init_process
    self.wsgi = self.app.wsgi()
  wsgi のファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py」の 103 行目
    self.callable = self.load()
  ファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py」、133行目、読み込み中
    return mod.make_command_wsgi_application(self.admin_media_path)
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py"、113 行目、make_command_wsgi_application 内
    reload_django_settings()
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py"、109 行目、reload_django_settings
    logging_config_func(settings.LOGGING)
  ファイル「/usr/lib/python2.7/logging/config.py」、行 777、dictConfig 内
    dictConfigClass(config).configure()
  ファイル "/usr/lib/python2.7/logging/config.py"、503 行目、configure 内
    Raise ValueError("辞書にバージョンが指定されていません")
ValueError: 辞書はバージョンを指定していません
トレースバック (最新の呼び出しが最後):
  spawn_worker のファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py」の 485 行目
    worker.init_process()
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py"、100 行目、init_process
    self.wsgi = self.app.wsgi()
  wsgi のファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py」の 103 行目
    self.callable = self.load()
  ファイル「/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py」、133行目、読み込み中
    return mod.make_command_wsgi_application(self.admin_media_path)
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py"、113 行目、make_command_wsgi_application 内
    reload_django_settings()
  ファイル "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py"、109 行目、reload_django_settings
    logging_config_func(settings.LOGGING)
  ファイル「/usr/lib/python2.7/logging/config.py」、行 777、dictConfig 内
    dictConfigClass(config).configure()
  ファイル "/usr/lib/python2.7/logging/config.py"、503 行目、configure 内
    Raise ValueError("辞書にバージョンが指定されていません")
ValueError: 辞書はバージョンを指定していません
2013-04-14 17:40:13 [26469] [INFO] ワーカーの終了 (pid: 26469)
2013-04-14 17:40:13 [26464] [INFO] シャットダウン中: マスター
2013-04-14 17:40:13 [26464] [情報] 理由: ワーカーが起動に失敗しました。
(socialenv)jonathan@li393-189:~/directory$
4

3 に答える 3

21

同じエラーが発生し、プロジェクトの設定ファイルにロギング構成を追加して修正しました。このページの例を使用しました

https://docs.djangoproject.com/en/dev/topics/logging/

これが私の設定ファイルのコードです

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
        'console':{
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': [],
        }
    },
    'loggers': {
        'django': {
            'handlers': ['null'],
            'propagate': True,
            'level': 'INFO',
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
    }
}
于 2013-10-01T02:54:39.927 に答える
13

最も簡単な方法は、settings.py に追加することです。

LOGGING = {
    'version': 1,
}
于 2013-12-03T12:22:14.260 に答える
1

このエラー メッセージは、ロギング構成用に渡された構成ディクショナリにスキーマ バージョンがないことを意味します。確かに辞書を表示する必要がありますが、それは確かにあなたが得ているエラーが参照しているものです. 詳細については、ドキュメントを参照してください。

于 2013-04-16T14:42:29.713 に答える