So führen Sie LeapMotion mit Nicht-Apple Python aus

Referenz: https://forums.leapmotion.com/forum/support/community-support/os-x/3169-python-pythreadstate-get-no-current-thread

Wenn Sie versuchen, LeapMotion mit Python auszuführen, das von Homebrew eingeführt oder von Ihnen selbst erstellt wurde

python


Fatal Python error: PyThreadState_Get: no current thread

Ich denke, dass ein Fehler wie dieser auftreten wird und nicht funktionieren wird.

Dies liegt daran, dass die Abhängigkeit des Objekts "LeapPython.so", das eine Brücke zwischen der Leap-Schnittstelle und Python bildet, für Python gilt, das mit dem Mac gebündelt ist.

Ich werde das lösen. Sie benötigen die Befehle otool und install_name_tool. Ich denke, dies erforderte X-Code-Befehlszeilentools. Wenn Sie den Befehl nicht finden können, installieren Sie ihn bitte zuerst.

Untersuchen Sie zuerst mit 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 1.0.9)
        /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)

Der Teil von "/Library/Frameworks/Python.framework/Versions/2.7/Python (Kompatibilitätsversion 2.7.0, aktuelle Version 2.7.0)" ist der problematische Teil. Schreiben Sie dies neu.

Es ist wie "install_name_tool [-change old_path new_path]". In meiner Umgebung sieht es so aus: Bitte ändern Sie den Teil new_path entsprechend der Umgebung jeder Person.


$ install_name_tool -change /Library/Frameworks/Python.framework/Versions/2.7/Python /usr/local/Cellar/python/2.7.6_1/Frameworks/Python.framework/Versions/Current/lib/libpython2.7.dylib LeapPython.so

Es scheint, dass es funktionieren wird, wenn Sie dasselbe mit Macports und Ihrem eigenen Build tun. Eine weitere Einschränkung ist, dass das Ereignis on_frame beim Ausführen von tmux nicht ausgelöst wird.

Recommended Posts

So führen Sie LeapMotion mit Nicht-Apple Python aus
Sprungbewegung in Python 3
So führen Sie Notepad ++ Python aus
Wie man in Python entwickelt
So führen Sie Python im virtuellen Raum aus (für MacOS)
Wie man setUp nur einmal in Python unittest ausführt
Holen Sie sich LeapMotion-Daten in Python.
[Python] Wie man PCA mit Python macht
So sammeln Sie Bilder in Python
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Versuchen Sie es mit LeapMotion mit Python
Umgang mit Japanisch mit Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So überprüfen Sie die Version von opencv mit Python
So wechseln Sie die Python-Version in Cloud9
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
Verwendung regulärer Ausdrücke in Python
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
So führen Sie Maya Python-Skripte aus
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Verwendung der C-Bibliothek in Python
So empfangen Sie Befehlszeilenargumente in Python
[REAPER] Wie man Reascript mit Python spielt
So löschen Sie einen Taple in einer Liste (Python)
So installieren Sie Python
So generieren Sie eine Sequenz in Python und C ++
Einbetten von Variablen in Python-Strings
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
So installieren Sie Python
So führen Sie CNN in 1 Systemnotation mit Tensorflow 2 aus
Zusammenfassung der Verwendung von MNIST mit Python
So geben Sie die TLS-Version in Python-Anforderungen an
So erhalten Sie die Dateien im Ordner [Python]
Wie man tkinter mit Python in Pyenv benutzt
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So geben Sie "Ketsumaimo" standardmäßig in Python aus
Wie man mit dem Datum / Uhrzeit-Typ in Pythons SQLite3 umgeht
So nehmen Sie Python Interpreter-Änderungen in Pycharm vor
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
So entfernen Sie doppelte Elemente in der Python 3-Liste
[Python] So führen Sie Jupyter-Notebook + Pandas + Multiprocessing (Pool) [Pandas] Memo aus
So rufen Sie den n-ten größten Wert in Python ab