2016-12-22 15 views
0

私は生産時にクラッシュしたPythonアプリケーションを持っています。ウェブサイトを開こうとすると、私は502悪いゲートウェイを取得します。 python manage.py restartを使ってdjangoアプリを再起動しようとしたところ、次のエラーが発生しました。Django - AttributeError: 'module'オブジェクトに 'TEMPLATE_CONTEXT_PROCESSORS'という属性がありません。

Traceback (most recent call last): 


File "manage.py", line 23, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 316, in execute 
    settings.INSTALLED_APPS 
    File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__ 
    self._setup(name) 
    File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 97, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/ringier/expat/expat/expat/expat/settings/__init__.py", line 12, in <module> 
    from expat.settings.production import * 
    File "/ringier/expat/expat/expat/expat/settings/production.py", line 4, in <module> 
    from expat.settings.base import * 
    File "/ringier/expat/expat/expat/expat/settings/base.py", line 89, in <module> 
    TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
AttributeError: 'module' object has no attribute 'TEMPLATE_CONTEXT_PROCESSORS' 

私はコードや設定で何も変更していませんが、なぜこれが起こっているのかわかりません。私は同様のエラーをチェックしましたが、この問題は解決しませんでした。

おかげ

EDIT:

base.py

... 
from django.conf import global_settings 
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    'django.core.context_processors.request', 
    'home.context_processors.system_config',) 
... 

global_settingsの= https://github.com/django/django/blob/master/django/conf/global_settings.py

EDIT 2:

私はglobal_settings.TEMPLATE_CONTEXT_PROCESSORSへの呼び出しを削除しました。その後、私はbase.pyから呼び出されたモジュールの多くをインストールしなければなりませんでした。これはウェブサイトが完璧に動作していて、どのようにそれらのモジュールがなくなったのかわからないからです... すべてのモジュールをインストールした後私はpostgresの

Traceback (most recent call last): 
    File "manage.py", line 23, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute 
    django.setup() 
    File "/usr/lib64/python2.7/site-packages/django/__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/usr/lib64/python2.7/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/usr/lib64/python2.7/site-packages/django/apps/config.py", line 199, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/usr/lib64/python2.7/site-packages/django/contrib/auth/models.py", line 4, in <module> 
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
    File "/usr/lib64/python2.7/site-packages/django/contrib/auth/base_user.py", line 52, in <module> 
    class AbstractBaseUser(models.Model): 
    File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 119, in __new__ 
    new_class.add_to_class('_meta', Options(meta, app_label)) 
    File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line 316, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "/usr/lib64/python2.7/site-packages/django/db/models/options.py", line 214, in contribute_to_class 
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
    File "/usr/lib64/python2.7/site-packages/django/db/__init__.py", line 33, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/usr/lib64/python2.7/site-packages/django/db/utils.py", line 211, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/usr/lib64/python2.7/site-packages/django/db/utils.py", line 115, in load_backend 
    return import_module('%s.base' % backend_name) 
    File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/usr/lib64/python2.7/site-packages/django/db/backends/postgresql/base.py", line 24, in <module> 
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2 

ウェブサイトがPROD上にあり、今以上ダウン12時間のためとして、私は本当に助けをお願い申し上げためのモジュールをインストールすることはできませんポイントに達しました。

+0

コードを挿入することはできますか? 'base.py'(少なくともエラー行を含みます)+ global_settingsインクルードファイル –

+0

global_settingsファイルに 'TEMPLATE_CONTEXT_PROCESSORS'はありません –

+0

@AdrianoMartins上記のコードを追加しましたが、私はconst TEMPLATE_CONTEXT_PROCESSORSを見つけることができませんglobal_settings.py。私は確信していない、おそらくいくつかの設定が上書きされ、今のアプリケーションが間違った場所を探している? – 113408

答えて

0

Djangoのバージョンが変更されていると思われ、psycopg2のインポートエラーが発生しているため、以前と同じ仮想環境でDjangoを再起動しなかったようです。

プロダクションでrunserverを使用している可能性があります。あなたはこれをしてはいけない、それは安全ではない。 Django docsには、Djangoを適切に展開する方法が記載されています。

+0

プロジェクトのセットアップ時にVirtualenvを使用していないと思います。例えば ​​'lsvirtualenv'のようにすると、コマンドが見つかりません。しかし、今私が 'python manage.py restart'を実行するとエラーは表示されません。ウェブサイトはまだエラー502で停止しています – 113408

関連する問題