在继续之前,这里是我的 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
如您所见,我在 shebang 行中使用 32 位 python,因为我需要使用仅在 32 位上运行的wxpython 。现在,唯一与 32 位 python 存在问题的包是MySQLdb,它已使用以下方式安装:
pypm install mysql-python
如果我刚刚删除了这条线
导入 MySQL 数据库从上面的代码中,它运行完美并打印出“Hello World”。
如果我从 shebang 行中删除“arch -i386”,wxpython 包将不起作用。我想同时使用 wxpython 和 MySQLdb。我该怎么做?