1

MySQL バックエンドで Django をセットアップしようとしていますが、以前は sqlite しか使用していませんでしたが、奇妙なエラーが発生しました。Error was: No module named mysql.base

Nginx と uwsgi で Ubuntu を実行しており、python-mysqldb がインストールされています。そして、これに続いて私は502を取得し始めたので、構成ファイルを変更していないので、それが関連していることを願っています.

以下はスタックトレースmanage.py inspectdbです。

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 453, in execute_from_command_line
utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, 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 272, in fetch_command
klass = load_command_class(app_name, subcommand)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/inspectdb.py", line 8, in <module>
from django.db import connections, DEFAULT_DB_ALIAS
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 45, in load_backend
raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: 'django.db.backends.mysql' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
u'oracle', u'postgresql_psycopg2', u'sqlite3'
Error was: No module named mysql.base

データベース設定;

  DATABASES = {
      'default': {
            'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'wdsdj',                      # Or path to database file if using sqlite3
            # The following settings are not used with sqlite3:
            'USER': 'mark',
            'PASSWORD': 'pass',
            'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
            'PORT': '',                      # Set to empty string for default.
      }
  }

sqlite3 に変更すると、dj から問題は発生しません。

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#     * Rearrange models' order
#     * Make sure each model has one field with primary_key=True
# Feel free to rename the models, but don't rename db_table values or field names.
#
# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'
# into your database.
from __future__ import unicode_literals

from django.db import models
4

1 に答える 1

1

設定をチェックして、エンジンが正しいことを確認してくださいdjango.db.backends.mysql

次に、python-mysqldb がインストールされていることを確認してください...

sudo apt-get install python-mysqldb

ただし、エラー スタックには「isn't an available database backend」と表示され、Django のインストールに何か問題がある可能性があります。

于 2013-04-11T18:52:36.963 に答える