2017-02-22 2 views
0

Ich habe keine Erfahrung Programmierung von Leap Motion, und ich habe versucht, die Sample.py Datei auf Python2.7 (auf IOS Sierra, 10.12.3). Aber es gibt mir immer folgende Fehlermeldung: Fatal Python Fehler: PyThreadState_Get: keine aktuellen Thread Abort trap: 6Leap Motion Fehler: Fatal Python Fehler: PyThreadState_Get: kein aktueller Thread Abbruch Trap: 6

Wenn ich versuche,

which python2.7 

I

bekommen
/opt/local/bin/python2.7 

Als ich run

otool -L LeapPython.so 

bekomme ich

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) 

Ich habe ein paar Python-Versionen in meinem Betriebssystem. Als ich sudo port select --list python laufen ich

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

Was geschieht ... Bitte helfen !! Vielen herzlichen Dank.

Antwort

1

Die Schaltbewegung für die Arbeit mit Python-Distributionen, die über Ports oder Brew installiert werden, erfordert ein paar zusätzliche Schritte. Verwenden Sie daher zur Vereinfachung das Standardsystem python.

sudo port select --set python python27 

überprüfen Sie es dann mit:

which python 

An diesem Punkt sollten Sie:

/usr/local/bin/python27 

Jetzt würde ich mit dem SDK erneut versuchen, die sample.py läuft.

Wenn Sie eine Ports Version verwenden möchten, werden Sie die Port-Version auswählen müssen, die liegt:

/opt/local/bin/python2.7 

und dann das otool Dienstprogramm ausführen, um die aktuellen loader Pfade anzuzeigen:

otool -L LeapPython.so 

Welche Ausgabe ähnlich angezeigt wird:

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) 

Die Linie mit Start/L ibrary/Frameworks/Python.framework/Versions/2.7/Python ist der Verweis auf Python, der mit dem Dienstprogramm install_name_tool geändert werden muss.

Zweitens, führen Sie das Dienstprogramm install_name_tool aus, um die Python-Referenz auf den gewünschten Speicherort zu aktualisieren. Zum Beispiel:

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 

Hoffentlich sollte das tun. Aber wie gesagt, wenn Sie die Mac-Distribution in/usr/local/bin/verwenden, ist es einfacher und Sie brauchen diese zwei Schritte nicht.

Voll doc von Sprung hier: https://community.leapmotion.com/t/python-thread-error-mavericks/1184/4

+0

Thank you!aber wenn ich versuchte, Sudo-Port zu wählen, wählen Sie --set python python27, der Python-Pfad, den ich hinterher bekomme, ist immer noch/opt/local/bin/python anstelle von/opt/local/bin/python27. Es funktioniert also nicht wirklich :( –

Verwandte Themen