ValueError:无法配置过滤器'require_debug_false':无法解析'django.utils.log.RequireDebugFalse':没有名为RequireDebugFalse的模块

时间:2013-03-10 21:30:34

标签: python mysql database django

我正在尝试将MySQL数据库连接到Django。我见过很多表格,但我无法解决问题。以下是我python manage.py syncdb时的结果:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 429, in execute_from_command_line
utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 252, in fetch_command
app_name = get_commands()[subcommand]
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 101, in get_commands
apps = settings.INSTALLED_APPS
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 139, in __init__
logging_config_func(self.LOGGING)
  File "/usr/lib/python2.7/logging/config.py", line 777, in dictConfig
dictConfigClass(config).configure()
  File "/usr/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.RequireDebugFalse': No module named RequireDebugFalse

我在Ubuntu上使用了virtualenv。

记录信息::

   LOGGING = {
   'version': 1,
   'disable_existing_loggers': False,
   'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse'
    }
},
'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    }
},
'loggers': {
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    },
}

}

3 个答案:

答案 0 :(得分:6)

从回溯中可以清楚地看到,您使用安装在虚拟环境中的Django版本 ;它正在使用/usr/local/lib/python2.7/dist-packages/django/中安装的版本。

配置适用于Django 1.4,但您使用的Ubuntu安装正在运行Django 1.3或更早版本。

您需要确保使用配置为运行而不使用网站包的virtualenv。

答案 1 :(得分:0)

在我的系统(Debian Wheezy)上,python-django软件包安装了“/ usr / bin / django-admin”。

请注意名称上缺少“.py”。要从virtualenv运行django-admin,要么提供完整路径,要么在末尾使用.py命名(django-admin.py)。或两者兼而有之。

(TRIAL)bjb@bjb-pc:~/projects/python/django$ which django-admin
/usr/bin/django-admin
(TRIAL)bjb@bjb-pc:~/projects/python/django$ which django-admin.py
/usr/local/pythonenv/TRIAL/bin/django-admin.py
(TRIAL)bjb@bjb-pc:~/projects/python/django$ echo $PATH
/usr/local/pythonenv/TRIAL/bin:/home/bjb/bin:/usr/bin/mh:/bin:/usr/bin:/usr/local/bin:/usr/games:/opt/arm-2009q1/bin

因此虽然virtualenv bin目录具有优先级,但由于bin中没有“django-admin”文件,所以/ usr / bin / django-admin被选中。

关键是如果您的项目是使用错误的django-admin创建的,那么当您尝试syncdb或使用virtualenv中的可执行文件执行其他操作时,您将遇到此错误 - 就像我刚才发生的那样。

答案 2 :(得分:0)

我遇到同样的问题,并在终端上使用此命令解决了

user@computer:~$ source /your_django_directory/bin/activate

你做完那个终端就像这样

(your_django_directory)user@computer:~$ source /your_django_directory/bin/activate

再次尝试syncdb。