3

開発者ツールが関係するため、ここで次の質問をします。

Ubuntu 10.04 LTS ワークステーションを 12.04 LTS (32 ビット) にアップグレードしました。今日、エラーなしで動作している Django Web アプリケーションを試してみました。Apache上で実行されています。

アプリケーションが機能しなくなり、エラーが返されます。私は一連のエラーを処理してきましたが、すべて/var/log/apache2/error.log.

最初のエラーは、UCS2 と UCS4 に関係していました (読みやすくするために行をトリミングしています)。

ImportError: /usr/local/lib/python2.7/lib-dynload/_io.so: 
undefined symbol: PyUnicodeUCS2_FromObject
mod_wsgi (pid=9246): Target WSGI script 
'/usr/local/www/wsgi-scripts/wsgi_amr_handler.py' 
cannot be loaded as Python module.

これは、mod_wsgi の最新バージョンを再ビルドして再インストールすることで解消されました。

現在のエラーは、mysqldb が有効なバックエンドではないことに関係しています。エラーは次のとおりです(わかりやすくするためにタイムスタンプを削除しています):

backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 51, 
in load_backend
raise ImproperlyConfigured(error_msg)
ImproperlyConfigured: 'mysql' isn't an available database backend.
Try using django.db.backends.mysql instead.
Error was: No module named mysql.base

これは、Django アプリケーションの settings.py などの構成の問題ですか?

Python 2.7、mod_wsgi、Django、および mysqldb のインストール順序はありますか?それが問題になる可能性はありますか?

これが私の現在の(コメントを受け取った後の)settings.pyです

DATABASES = {
'default': {
'ENGINE': ' django.db.backends.mysql', 
'NAME': 'server',      # Or path to database file if using sqlite3.
'USER': 'ox',          # Not used with sqlite3.
'PASSWORD': 'xxxx',                  # Not used with sqlite3.
'HOST': '',     
'PORT': '',  
    }
}

エラーは次のとおりです。

ImproperlyConfigured: ' django.db.backends.mysql' isn't an available database backend.
Try using django.db.backends.XXX, where XXX is one of:
'dummy', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3'
Error was: No module named  django.db.backends.mysql.base
4

1 に答える 1

5

どうやらDjangoのインストールもアップグレードしたようです。最近の Django バージョンでは、バックエンド モジュールの完全な名前が必要です。データベースの指定方法はバージョン 1.2で変更されたため、アップグレード ノートに従って Django プロジェクトのコードベースを更新する必要があります。

MySQL の場合、正しいバックエンドはdjango.db.backends.mysql; エントリを開いsettings.pyて更新します。DATABASES

于 2012-11-26T17:34:55.043 に答える