先に進む前に、Macとインストールされているpython(ActivePython)およびwxpythonのバージョンの詳細を以下に示します。
Macバージョン:10.6.6 Pythonバージョン:2.7.1(ActiveState Python)wxPythonバージョン:wxPython2.8-osx-unicode-py2.7
これが私がテストするために書いた小さなコードです:
#! /usr/bin/env arch -i386 /usr/local/bin/python
import time
import random
import re
import wx
from wx.lib.mixins.listctrl import ListCtrlAutoWidthMixin
import serial
import itertools
import datetime
import sys
import os
import MySQLdb
print "Hello World"
これが私がそれを実行することから得たエラーです:
Traceback (most recent call last):
File "./sar.pyw", line 13, in <module>
import MySQLdb
File "/Users/ven/Library/Python/2.7/lib/python/site-packages/MySQLdb/__init__.py", line 19, in <module>
import _mysql
ImportError: dlopen(/Users/ven/Library/Python/2.7/lib/python/site-packages/_mysql.so, 2): Symbol not found: _mysql_affected_rows
Referenced from: /Users/ven/Library/Python/2.7/lib/python/site-packages/_mysql.so
Expected in: flat namespace
in /Users/ven/Library/Python/2.7/lib/python/site-packages/_mysql.so
ご覧のとおり、32ビットでのみ実行されるwxpythonを使用する必要があるため、shebang行で32ビットpythonを使用しています。現在、32ビットPythonで問題がある唯一のパッケージは、以下を使用してインストールされたMySQLdbです。
pypm install mysql-python
行を削除した場合
MySQLdbをインポートする上記のコードから、完全に実行され、「HelloWorld」が出力されます。
shebang行から「arch-i386」を削除した場合、wxpythonパッケージは機能しません。wxpythonとMySQLdbの両方を同時に使用したい。どうすればいいのですか?