ValueError: Невозможно настроить фильтр 'require_debug_false': Невозможно разрешить 'django.utils.log.CallbackFilter': нет модуля с именем CallbackFilter - PullRequest
5 голосов
/ 14 сентября 2011

Я устанавливаю простую базу данных с использованием Django, и я получаю вышеуказанную ошибку при запуске 'python manage.py syncdb'

Это проблема в manage.py или моем файле .db? Предложения как решить?

РЕДАКТИРОВАТЬ: Добавление полной трассировки

Traceback (most recent call last):

File "manage.py", line 14, in <module>
execute_manager(settings)
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 252, in fetch_command
app_name = get_commands()[subcommand]
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 101, in get_commands
apps = settings.INSTALLED_APPS
File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 139, in __init__
logging_config_func(self.LOGGING)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 776, in dictConfig
dictConfigClass(config).configure()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 562, in configure
'filter %r: %s' % (name, e))
ValueError: Unable to configure filter 'require_debug_false': Cannot resolve 'django.utils.log.CallbackFilter': No module named CallbackFilter

Ответы [ 6 ]

11 голосов
/ 28 октября 2011

У меня была такая же проблема

Зайдите на сайт settings.py и найдите настройки LOGGING

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'filters': {

    'require_debug_false': {

        '()': 'django.utils.log.CallbackFilter',

        'callback': lambda r: not DEBUG

    }

},

Видите CallbackFilter там? Удалить весь ключ «фильтры». Это произошло потому, что я пытался использовать один и тот же файл settings.py в двух разных версиях Django. Если вы используете djangoadmin.py startproject, вы получите действительный файл settings.py.

6 голосов
/ 20 сентября 2011

Пожалуйста, проверьте, является ли самая последняя версия django 1.3.1 , которая у вас есть, потому что это ошибка в Django.

Чтобы избежать таких ситуаций, я рекомендую использовать virtualenv: Как создать несколько сред Django, используя virtualenv

Если у вас самая последняя версия, но проблема все еще не устранена, обновите эту ошибку: Билет # 16568 require_debug_false не работает должным образом (обратная несовместимость)

Ошибка также имеет простое решение:

Remove require_debug_false from global_settings.py (since it does

не работает) и заставляет всех копировать / вставлять сниппет LOGGING по умолчанию к их настройкам

Ответ от django разработчика andreas_pelme здесь , это не ошибка, и если установлена ​​правильная версия django, она должна работать нормально.

~ $ mkvirtualenv t16568-regression
New python executable in t16568-regression/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/andreas/.virtualenvs/t16568-regression/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/andreas/.virtualenvs/t16568-regression/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/andreas/.virtualenvs/t16568-regression/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/andreas/.virtualenvs/t16568-regression/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/andreas/.virtualenvs/t16568-regression/bin/get_env_details
[t16568-regression] ~ $ pip install django==1.3.1
Downloading/unpacking django==1.3.1
  Downloading Django-1.3.1.tar.gz (6.5Mb): 6.5Mb downloaded
  Running setup.py egg_info for package django

Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    changing mode of /Users/andreas/.virtualenvs/t16568-regression/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
[t16568-regression] ~ $ cd code/
[t16568-regression] ~ $ django-admin.py startproject foo
[t16568-regression] ~ $ cd foo/
[t16568-regression] ~/foo $ python manage.py shell

In [1]: import django; django.get_version()
Out[1]: '1.3.1'
2 голосов
/ 28 апреля 2012

Я нашел эту проблему.Если мы работали с eclipse PyDev и создали проект в eclipse - у нас неправильная структура проекта.

Для решения этой проблемы нам нужно создать проект в командной строке с manage.py startproject myprojectname ив eclipse создайте новый проект Django и укажите старый с уже созданным проектом с помощью инструмента командной строки.

С уважением, Антон.

1 голос
/ 27 февраля 2013

У меня была такая же проблема.Я бы сказал, что источником проблемы является то, что ваш «setting.py» был создан с другой версией Django, чем ваша текущая версия.Если вы не знаете, какая у вас версия, я рекомендую вам начать новый проект, чтобы иметь файл setting.py с текущей версией Django.

Если вам известна версия Django, которую вы использовали для создания проекта, вы можете легко установить ее снова с помощью следующей команды (пример Django версии 1.4.5)

pip install Django==1.4.5

Я надеюсь, что этоможет помочь.

1 голос
/ 28 февраля 2012

У меня была такая же проблема, и в моем случае это было из-за запуска manage.py с использованием sudo, который игнорирует виртуальный env. Для этого есть решение на этой теме .

1 голос
/ 14 сентября 2011

Вы пробовали переустановить django? Если нет, я думаю, что это отличная возможность начать использовать виртуальную среду.

В

есть класс CallbackFilter
/usr/local/lib/python2.6/dist-packages/django/utils/dictconfig.py

Тот факт, что вы не можете прочитать его, означает, что либо его нет, либо ваш python_path не очень хорошо сконфигурирован, но, поскольку вы можете читать другие вещи django, это, вероятно, не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...