lightblue Python模块在Mac上无法工作

4 投票
1 回答
1783 浏览
提问于 2025-04-17 11:02

我正在尝试在 mac osx 10.7.2 上通过 Python 连接到 Wii 遥控器。

为此,我想使用 lightblue。可是当我运行:import lightblue 时,Python 给了我这个错误。

   >>> import lightblue
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lightblue/__init__.py", line 160, in <module>
    from _lightblue import *
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lightblue/_lightblue.py", line 27, in <module>
    import _IOBluetooth
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lightblue/_IOBluetooth.py", line 47, in <module>
    globals=globals())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC/objc/_bridgesupport.py", line 142, in initFrameworkWrapper
    _parseBridgeSupport(data, globals, frameworkName)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC/objc/_bridgesupport.py", line 42, in _parseBridgeSupport
    objc.parseBridgeSupport(data, globals, frameworkName, *args, **kwds)
ValueError: cftype for 'IOBluetoothDeviceInquiryRef' must include gettypeid_func, tollfree or both

我在这里找到一个类似问题的帖子:http://python.6.n6.nabble.com/Python-bridgesupport-issue-on-Lion-td2161049.html#a32196961,但那个回答对我帮助不大,因为我觉得它似乎已经在使用 lightblue 的文件了。有什么建议吗?

1 个回答

1

看起来这是苹果的 gen_bridge_metadata 脚本出现了问题。你可以通过手动编辑生成的文件来解决这个错误。

打开这个文件:/System/Library/Frameworks/IOBluetooth.framework/Versions/Current/Resources/BridgeSupport/IOBluetooth.bridgesupport,然后删除所有以 <cftype 开头的行。

撰写回答