首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OS X 10.8上的LightBlue :方法签名不匹配

OS X 10.8上的LightBlue :方法签名不匹配
EN

Stack Overflow用户
提问于 2013-04-11 12:01:06
回答 1查看 1.2K关注 0票数 2

我用的是Nickolay Yegorov的port of LightBlue for OS X 10.8在导入lightblue模块后,我立即得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "commander.py", line 3, in <module>
    import lightblue
  File "/usr/local/lib/python2.7/site-packages/lightblue/__init__.py", line 160, in <module>
    from _lightblue import *
  File "/usr/local/lib/python2.7/site-packages/lightblue/_lightblue.py", line 397, in <module>
    class _AsyncDeviceInquiry(Foundation.NSObject):
TypeError: Error when calling the metaclass bases
    class _AsyncDeviceInquiry does not correctly implement protocol IOBluetoothDeviceInquiryDelegate: the signature for method deviceInquiryComplete:error:aborted: is v@:@iB instead of v@:@iZ

看起来可能存在版本不匹配。是否有已知的解决此问题的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 12:01:06

Yegorov's repo的源代码中打开文件src/mac/_lightblue.py。查找第467行(如下所示):

代码语言:javascript
复制
deviceInquiryComplete_error_aborted_ = objc.selector(
    deviceInquiryComplete_error_aborted_, signature="v@:@iB")

将字符串v@:@iB更改为v@:@iZ。从以下来源重新安装LightBlue:

代码语言:javascript
复制
cd <lightblue_root> && sudo python setup.py install

这应该可以解决签名错误。

二进制

dlamblin请求使用此修复程序的二进制文件。下面是my LightAquaBlue.framework,它是使用Python2.7.4为OSX10.8.2构建的(放在/Library/Frameworks中)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15940541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档