Прежде чем продолжить, вот некоторые подробности о моем 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-битный python в строке shebang, потому что мне нужно работать с wxpython , который работает только на 32-битной системе. Теперь единственным пакетом, который имеет проблемы с 32-битным питоном, является MySQLdb , который был установлен с помощью:
pypm install mysql-python
Если я только что удалил строку
import MySQLdb
из приведенного выше фрагмента кода, она отлично работает и выдает «Hello World».
Если я удалил «arch -i386» из строки shebang, пакет wxpython не будет работать. Я хочу использовать как wxpython, так и MySQLdb одновременно. Как мне это сделать?