First web app on Django with MySQL


Writing your first Django app, part 1に沿ってはじめてDjangoでwebアプリを作ってみた。色々躓いたのでメモしておこう。


Python, Django, MySQL, MySQLdbのmacへのインストールの大まかな流れはStackoverflowの記事:Django + MySQL on Mac OS 10.6.2 Snow Leopardのコメントが参考になったのでとりあえずリンク。


一番やっかいだったのが、PythonMySQL用ドライバ:MySQLdbのインストール。上の記事に沿って

sudo port install py27-mysql

としたが、どうもうまくいかなかった。色々Google先生に聞きながら調べまくった結果、How to install MySQLdb (Python data access library to MySQL) on Mac OS X?に行き着き、自分でMySQL for Pythonからtar.gzをダウンロード•展開し、インストール•設定することにした。


基本的には↑の記事に沿って行けば良かったが、最後に以下のエラーで再び躓く。

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.3-fat.egg/MySQLdb/__init__.py", line 19, in
import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.3-fat.egg/_mysql.so, 2): Library not loaded: libmysqlclient.16.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.3-fat.egg/_mysql.so
Reason: image not found


どうやら_mysql.soがlibmysqlclient.16.dylibをリファレンスできていないらしい。色々調べた結果、/usr/local/mysql/lib/をDYLD_LIBRARY_PATHに設定すれば良さそうだったので、以下を~/.bash_profileに追加。

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/


これで何とか動くようになった。他にもPythonの色んなバージョンがごっちゃになったりして大変だったが、とりあえず学ぶことは多かったので一件落着。DjangoStackとかゆー便利そうなものもあるので機会があったら試してみよう。