googleAppEngineLauncher を使用して、mysql 接続を試行しています。
ログを表示します
File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql
私はやったpip install MySQL-python
のようなコマンドもpython manage.py dbshell
機能し、cloudsql バックエンドに接続します。
そこにあるすべてのテーブルにアクセスできます。
しかし、実行すると同じエラーが発生します。
mysql 5.6 がインストールされています。
app.yamlに以下を追加します
- name: MySQLdb
version: "latest"
ライブラリ ディレクトリを確認しましたが、mysqldb がなかったので、これも役に立ちません。
私の設定 -
import os
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '173.194.xxx.xxx',
'NAME': 'my_database',
'USER': 'root',
'PASSWORD': 'xxxxxxxx',
}
}
答え1
MySQL-Python を pip 経由でインストールした場合、おそらく '_mysql' 拡張機能のビルドに失敗します。これは C 拡張機能であり、ビルドには MSVC++ 9.0 が必要です。
building '_mysql' extension
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27
Windowsの場合、最善の解決策は、次のようなMySQL-pythonのバイナリインストーラを使用することです。http://sourceforge.net/projects/mysql-python必要に応じて Python 用の MSVC++ コンパイラをダウンロードできますが、C ヘッダーとライブラリを含む MySQL 開発者ビルドもインストールする必要があり、他の問題が発生する可能性があります。
もちろん、これは開発サーバー上でアプリをローカルに実行する場合にのみ重要です。App Engine Python ランタイムには、アプリをデプロイするリモート環境にすでに MySQLdb が含まれているためです。
答え2
もしあなたが私と同じように、Python 3.5 を搭載した Ubuntu サーバーを使用している場合、この問題を解決するために数時間苦労しました。Apache サーバーは、仮想環境を介して行った wsgi セットアップを使用して起動しませんでした。
そこで、pip install this と pip install that をすべて試してみました。参考までに、Python 3.5 の場合、python と django を介して mysql に接続するには、pip ライブラリ mysqlclient をインストールする必要があります。しかし、私はあなたと同じエラーを何度も受け取りました... 最終的に私がしたのは、次のように実行することでした。
easy_install mysqlclient
これは単純なことです。easy_install が取得して一撃でインストールした依存関係が不足していたのだと思います。
幸運を祈ります。このページが、あなたや、トンネルの先の光を探してこのページを見つけた他の誰かの役に立つことを願っています。