暇人じゃない

Mac OS X 10.6.4 における mysql-python のインストールと Django のデータベース設定

タイトルが長くなりましたがタイトルの通りです。

環境: MacOS X 10.6.4 MySQL 5.1.46 Python 2.6.5 Django 1.2.3

mysql-python のインストール

一般的な環境(?)に mysql-python をインストールしたい場合には以下のように pip でインストールしてあげれば良いのですが、dmg パッケージからインストールした MySQL ではエラーが出ました。 “`bash % sudo pip install mysql-python

Downloading/unpacking mysql-python Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded Running setup.py egginfo for package mysql-python sh: mysqlconfig: command not found Traceback (most recent call last): File ”“, line 14, in File ”/Users/chocoby/.virtualenvs/tag/build/mysql-python/setup.py", line 15, in metadata, options = getconfig() File “setupposix.py”, line 43, in getconfig libs = mysqlconfig(“libsr”) File “setupposix.py”, line 24, in mysqlconfig raise EnvironmentError(“%s not found” % (mysqlconfig.path,)) EnvironmentError: mysqlconfig not found Complete output from command python setup.py egginfo: sh: mysql_config: command not found

… 以下略

どうやら mysql_config が見つからないみたいです。

**mysql_config のパスを探す**

僕の環境では、mysql_config は **mysql_config5** というコマンドになっていました。
which コマンドで mysql_config5 へのパスを探します。
```bash
% which mysql_config5
/opt/local/bin/mysql_config5

site.cfg の修正

mysql-python のセットアップディレクトリにある、site.cfg ファイルに先ほど探した mysqlconfig5 へのファイルを記述します。 mysqlconfig = がコメントアウトされているので、コメントアウトを解除して記述してください。

~/.virtualenvs/tag/build/mysql-python/site.cfg (virtualenv を使用している為、このようなパスになっています。) bash options

embedded: link against the embedded server library

threadsafe: use the threadsafe client

static: link against a static library (probably required for embedded)

embedded = False threadsafe = True static = False

The path to mysql_config.

Only use this if mysql_config is not on your PATH, or you have some weird

setup that requires it.

mysqlconfig = /opt/local/bin/mysqlconfig5

… 以下略


**インストール**

もう一度 pip install mysql-python します。
```bash
% sudo pip install mysql-python
Downloading/unpacking mysql-python
  Running setup.py egg_info for package mysql-python
    warning: no files found matching 'MANIFEST'
    warning: no files found matching 'ChangeLog'
    warning: no files found matching 'GPL'
Installing collected packages: mysql-python
  Running setup.py install for mysql-python
    building '_mysql' extension

# ... 省略

Successfully installed mysql-python
Cleaning up...

mysql-python のインストールが完了しました。 実際にインポートできるか試してみましょう。 “`bash % python Python 2.6.5 (r265:79063, Sep 1 2010, 21:41:05) [GCC 4.2.1 (Apple Inc. build 5659)] on darwin Type "help”, “copyright”, “credits” or “license” for more information.

import MySQLdb

インポートできていますね。

Django のデータベース設定

settings.py のデータベース設定は以下のようになっています。 HOST は指定しなくても良いはずなのですが、/opt/local/var/run/mysql5/mysqld.sock という socket を見に行こうとするため、my.cnf で設定している socket である /tmp/mysql.sock を、HOST で指定しています。 python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysqldatabase', 'USER': 'mysqluser', 'PASSWORD': 'mysqlpassword', 'HOST': '/tmp/mysql.sock', 'PORT': '', } }