pyusbモジュールに問題があります。問題を1行に絞り込み、エラーを再現するための小さなサンプルスクリプトを作成しました。
#!/usr/bin/env python
"""
This module was created to isolate the problem in the pyusb package.
Operating system: Mac OS 10.6.3
Python Version: 2.6.4
libusb 1.0.8 has been successfully installed using:
sudo port install libusb
I have also tried modifying /opt/local/etc/macports/macports.conf to force
the i386 architecture instead of x86_64.
"""
from ctypes import *
import ctypes.util
libname = ctypes.util.find_library('usb-1.0')
print 'libname: ', libname
l = CDLL(libname, RTLD_GLOBAL)
# RESULT:
#libname: /usr/local/lib/libusb-1.0.dylib
#Traceback (most recent call last):
# File "./pyusb_problem.py", line 7, in <module>
# l = CDLL(libname, RTLD_GLOBAL)
# File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 353, in __init__
# self._handle = _dlopen(self._name, mode)
#OSError: dlopen(/usr/local/lib/libusb-1.0.dylib, 10): no suitable image found. Did find:
# /usr/local/lib/libusb-1.0.dylib: mach-o, but wrong architecture
# End of File
これと同じスクリプトがUbuntu10.04で正常に実行されます。
x86_64(OS 10.6のデフォルト)ではなく32ビット(i386)用のlibusbモジュール(ソースから直接およびmacports経由)をビルドしようとしましたが、同じエラーが発生します。
よろしくお願いします!