MySQLdb と PIL のインストール

MySQLdb インストール

いつも忘れる。centos用ね。Macも似た感じでいけるけど、dmg からインスコした MySQL の場合「Library not loaded: libmysqlclient.18.dylib のときに」が必須かも。

PythonMySQL-pythonを使おうとしたら、"import MySQLdb"している箇所で"ImportError: dlopen(/path/to/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib"というエラーが発生した。ちなみに環境はMacOSXのLionである。

locateしてみたところ、libmysqlclient.18.dylib自体は存在しているらしい。

$ locate libmysqlclient.18.dylib
/usr/local/mysql-5.5.16-osx10.6-x86_64/lib/libmysqlclient.18.dylib

なので、次のようにしてこのファイルを/usr/libにシンボリックリンクした。

$ cd /usr/lib
$ sudo ln -fs /usr/local/mysql-5.5.16-osx10.6-x86_64/lib/libmysqlclient.18.dylib libmysqlclient.18.dylib

これでエラーは解消した。

とあるけど、つぎでもいいかも。

~/.bash_profile

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

手順

  1. sudo yum -y install python-devel
  2. sudo yum -y install mysql-devel
  3. このへんから MySQL for Python のソースをDL
  4. tar zxvf Mysql-python-1.2.3.tar.gz
  5. cd Mysql-python-1.2.3
  6. workon XXXX
  7. python setup.py build
  8. python setup.py install

impot MySQLdb できたらおk。

テストコード的に。

mysql でデータベースとテーブルつくっとく。

create database tech default character set utf8;
use tech;
create table test_table (id int, name varchar(100));

testdb.py

# -*- coding: utf-8 -*-
import MySQLdb
if __name__ == "__main__":
    connector = MySQLdb.connect(host="localhost", db="tech", user="root", passwd="", charset="utf8")
    cursor = connector.cursor()
    sql = u"insert into test_table values('1','python')"
    cursor.execute(sql)
    sql = u"insert into test_table values('2','パイソン')"
    cursor.execute(sql)
    sql = u"insert into test_table values('3','ぱいそん')"
    cursor.execute(sql)
    connector.commit()
    cursor.close()
    connector.close()

PIL インストール

いつも忘れる。centos 用ね。Mac もこんな感じでいけた気がする。

手順

  1. sudo yum install libjpeg-devel
  2. wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
  3. tar -zxvf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. workon XXX
  6. python setup.py build
  7. python setup.py install

impot PIL できたらおk。