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