あれれ?EclipseでPython使うとMySQLにアクセスできないぞ...
という問題が発生しました.
といっても原因は本当にしょぼいものでした.
とりあえず今回の環境です.
- 環境
これで以下のような簡単なコードを実行するとエラーになるんですよねー
(termからpythonをインタラクティブモード実行すると問題なく動く事は確認しました)
#!/usr/bin/python # -*- coding: utf-8 -*- import MySQLdb, codecs # DB に接続 db = MySQLdb.connect(user="xxxxxxxx", passwd="xxxxxxx", db="XXXXXXXXXXXXXXXX", charset="utf8") # カーソルの取得 c = db.cursor() # SELECT c.execute("SELECT * FROM xxxxxxxxxxxxxxxxx") # 最初から 10 件を表示 it = iter(c) for i in range(0,10): for col in it.next(): print col, print
これを実行するとEclipseのコンソールに以下のエラーメッセージが...
Traceback (most recent call last): File "/Users/aceax00/workspace/kids2010/src/analysis.py", line 9, in <module> import MySQLdb, codecs File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Library/Python/2.7/site-packages/_mysql.so Reason: image not found
なんでかな?と思ってググってみると割とよくある現象のようです(^^;
まぁdylibの場所が分からないと怒られてるので,環境変数の問題だろうと思ってみると...
$ echo $DYLD_LIBRARY_PATH /usr/local/mysql/lib/
いつのまにこんな変数が定義されていたんだ...と思いつつ.
こんな感じで環境変数をEclipseに設定し直しました.
これで問題なく動くようです.