Django Book'daki adımları izliyorum ve yazarların bir veritabanını kullanmak için bir django projesinin kurulumunu açıkladıkları yere geldim. Mysql'i seçtim. settings.py
yılındaImportError: Ubuntu 11.04 sunucusunda django projesinde mysql.base adında bir modül yok
My ayarları şunlardır:
DATABASES = {
'default': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydatabase', # Or path to database file if using sqlite3.
'USER': 'myname', # Not used with sqlite3.
'PASSWORD': 'mypassword', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
sunucusunu başlatmaya çalışırken, aşağıdaki ileti yazdırılır:
Validating models...
Traceback (most recent call last):
File "/home/me/workspace/mysite/src/mysite/manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 442, in execute_manager
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/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 67, in handle
self.run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 78, in run
self.inner_run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 88, in inner_run
self.validate(display_num_errors=True)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 243, in validate
from django.core.management.validation import get_validation_errors
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 3, in <module>
from django.contrib.contenttypes.generic import GenericForeignKey, GenericRelation
File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/generic.py", line 7, in <module>
from django.db import connection
File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 27, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 81, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 23, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named mysql.base
Biraz googled ve öğrendim bu mesaj olabileceğini MySQLd'nin eski bir sürümünü kullanırsanız yazdırılır. Bu yüzden en son sürüme sahip olduğumdan emin oldum. Ve ithalatı interaktif bir python kabuğunda test ettim. Bu iyi.
Diğer öneriler, neden çalışmıyor?
Önemliyse, yeni kurulmuş bir Ubuntu 11.04 Sürümü (Windows 7'de Wubi) üzerinde çalışıyorum. =
Django'nun hangi sürümü çalışıyorsunuz? Python-django' paketinden 1.2.5? Proje web sitesinden 1.3? –
django.db.utils.load_backend() 'için kaynak koduna baktığımda, sadece '' mysql '' yerine' django.db.backends.mysql 'kullanmanız gerektiğini düşünüyorum. Bu muhtemelen size sadece farklı bir hata mesajı verecektir, ancak daha yararlı olacaktır. –
@Tim Yates: 'django.db.backends.mysql' sürümünü kullanıyorum. Kitabın önerdiği gibi, dün sabah bagajdan kontrol ettim. '' Mysql'' yerine 'MOTOR'ı' 'django.db.backends.mysql'' ayarlaması işi yaptı. Çok teşekkür ederim, Tim. – Aufwind