2017-02-22 67 views
0

我沒有編程Leap Motion的經驗,我試圖在python2.7上運行Sample.py文件(在IOS Sierra,10.12.3上)。然而,它總是給我下面的錯誤: 致命的Python錯誤:PyThreadState_Get:沒有當前線程 中止陷阱:6Leap Motion錯誤:致命的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

使用跳躍運動來處理通過端口或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) 

的線開始,/ L 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

+0

謝謝!但是當我試圖做sudo port select --set python27時,我得到的python路徑仍然是/ opt/local/bin/python,而不是/ opt/local/bin/python27。所以它不真的工作:( –