Leap Motion错误:致命的Python错误:PyThreadState_Get:没有当前线程中止陷阱:6

时间:2017-02-22 20:02:28

标签: python leap-motion

我没有编程Leap Motion的经验,我试图在python2.7上运行Sample.py文件(在IOS Sierra,10.12.3上)。但是,它总是给我以下错误:     致命的Python错误:PyThreadState_Get:没有当前线程     中止陷阱:6

当我尝试

which python2.7

我得到了

/opt/local/bin/python2.7

当我跑步时

otool -L LeapPython.so

我得到了

LeapPython.so:
    /opt/local/bin/python2.7/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
    @loader_path/libLeap.dylib (compatibility version 0.7.0, current version 2.3.1)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

我的操作系统中有几个python版本。当我运行sudo port select --list python时 我得到了

Available versions for python:
    none
    python26-apple
    python27
    python27-apple (active)

发生了什么......请帮助!!非常感谢你。

1 个答案:

答案 0 :(得分:1)

使用通过端口或brew安装的python发行版的跳跃动作需要一些额外的步骤。所以为了方便起见,请使用默认的系统python。

sudo port select --set python python27

然后检查:

which python

你应该得到:

/usr/local/bin/python27

现在我将重新尝试使用SDK,运行sample.py。

如果要使用端口版本,则必须选择端口版本,该版本位于:

/opt/local/bin/python2.7

然后运行otool实用程序以显示当前的加载程序路径:

otool -L LeapPython.so

将显示类似于:

的输出
LeapPython.so:
    @loader_path/LeapPython.so (compatibility version 0.0.0, current version 0.0.0)
    /Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
    @loader_path/libLeap.dylib (compatibility version 0.7.0, current version 2.0.1)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)

以/ Library/Frameworks/Python.framework/Versions/2.7/Python开头的行是对Python的引用,需要使用install_name_tool实用程序进行更改。

其次,运行install_name_tool实用程序以将Python引用更新为所需位置。例如:

install_name_tool -change /Library/Frameworks/Python.framework/Versions/2.7/Python \
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \
LeapPython.so

希望应该这样做。但正如我所说,如果你在/ usr / local / bin /中使用mac发行版,那么它更直接,你不需要这两个步骤。

来自飞跃的完整文档: https://community.leapmotion.com/t/python-thread-error-mavericks/1184/4