4

我正在尝试将 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,
    },
}

}

4

3 回答 3

6

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

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

您需要确保使用配置为在没有站点包的情况下运行的 virtualenv。

于 2013-03-10T22:05:01.563 回答
0

我有同样的问题并在终端上用这个命令解决了

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

在你这样做之后,终端变成了这样

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

比再次尝试syncdb。

于 2013-09-19T12:52:45.787 回答
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 中的可执行文件的操作时,您将遇到此错误——就像我刚才发生的那样。

于 2013-06-05T19:25:30.413 回答