1

先に進む前に、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の両方を同時に使用したい。どうすればいいのですか?

4

1 に答える 1

1

重複;-)

これは既知のバグです。現時点では、mysql-pythonパッケージは 64 ビット用にのみビルドされています。

wxpython と MySQLdb の両方を同時に使用したい。どうすればいいのですか?

wxPython 2.8 は (Carbon を使用しているため) 64 ビットをサポートしていません。これが、PyPM パッケージが 32 ビット専用にビルドされている理由です。wxPython 2.9 を使用してみてください。

回避策: pypm() を使用して wxpython を削除し、wxpython.orgから開発用pypm uninstall wxpythoncocoa バイナリをインストールします。wxPython2.9-osx-cocoa-py2.7

于 2011-05-06T16:55:20.257 に答える