Schwerwiegender Python-Fehler: PyThreadState_Get: Kein aktueller Thread
-
Was verursacht den Fehler
PyThreadState_Get: kein aktueller Thread
. -
Verwenden Sie
sudo
, um den FehlerPyThreadState_Get: kein aktueller Thread
zu lösen -
Verwenden Sie
otool
, um den FehlerPyThreadState_Get: kein aktueller Thread
zu lösen
Auf unserem lokalen Computer könnten wir verschiedene Python-Versionsinstallationen haben, die zu einem bestimmten Zeitpunkt nur das tun können, was in dieser Version eingeschränkt oder neu ist.
Wir können Probleme bekommen, wenn wir Code in einem Versionskontext mit all seinen Abhängigkeiten schreiben und dieser Code in einem anderen Python-Versionskontext ausgeführt wird.
Eines dieser Probleme ist PyThreadState_Get: kein aktueller Thread
, und in diesem Artikel werden wir erörtern, was es verursacht und wie es auf Ihrem lokalen Mac/Linux-PC behoben werden kann.
Was verursacht den Fehler PyThreadState_Get: kein aktueller Thread
.
An mehrere Python-Installationen sind verschiedene Module und Abhängigkeiten angehängt, aber wenn wir Python-Code ausführen, kann die falsche Python-Bindung mit dem von unserem PC bereitgestellten System verknüpft werden. Dieses Szenario tritt häufig bei der Verwendung von macOS auf.
Daher müssen wir sicherstellen, dass das richtige Python (mit unseren Modulen) unseren Code ausführt und die richtigen Module mit unserem System Python verknüpft.
Verwenden Sie sudo
, um den Fehler PyThreadState_Get: kein aktueller Thread
zu lösen
Wenn Sie mehrere Python-Installationen haben, können verschiedene Bibliotheken Python verwenden, und um die Fehlermeldung PyThreadState_Get: kein aktueller Thread
zu lösen, können wir das aktive
Python in die Python-Installation ändern, die Sie zuvor als Standardbibliotheken aufgerufen haben dein Code.
Um die aktive
Python-Installation zu ändern, können wir den folgenden sudo
-Befehl verwenden.
sudo port select --list python
Die Ausgabe des Befehls:
Available versions for python:
none
python26-apple
python27
python27-apple (active)
python34
Aus der obigen Ausgabe ist die aktive Python-Installation python27-apple
, und um die Python-Installation zu wechseln, die die Abhängigkeiten und Module enthält, benötigen Sie python34
.
Um zu python34
zu wechseln, können wir den untenstehenden sudo
-Befehl verwenden.
sudo port select python python34
Nachdem wir den obigen Befehl ausgeführt haben, können wir mit dem Befehl --list
überprüfen, ob es funktioniert hat.
sudo port select --list python
Die Befehlsausgabe sollte nun zeigen, dass python34
aktiv ist.
Available versions for python:
none
python26-apple
python27
python27-apple
python34 (active)
Verwenden Sie otool
, um den Fehler PyThreadState_Get: kein aktueller Thread
zu lösen
Häufig ist die Hauptursache für die Fehlermeldung PyThreadState_Get: no current thread
beim Ausführen Ihres Codes die Verwendung einer Bibliothek (import
-Anweisung) mit einer anderen Python-Installation, die diese nicht erkennt. Wir können das Problem mit den Dienstprogrammen otool
und install_name_tool
lösen.
Um es zu lösen, müssen wir die Python-Bibliothek (z. B. Leap Motion) mit der alternativen Python-Installation verwenden und den Ladepfad der Bibliothek aktualisieren, um auf die gewünschte Python-Installation zu verweisen.
Verwenden Sie zunächst den Befehl otool
, um die aktuellen Ladepfade zu überprüfen.
otool -L LeapPython.so
Die Ausgabe des Befehls:
LeapPython.so:
@loader_path/LeapPython.so (compatibility version 0.0.0, current version 0.0.0)
/Library/Frameworks/Python.framework/Versions/3.4/Python (compatibility version 3.4.0, current version 3.4.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)
Daher müssen wir den aktuellen Python-Speicherort/-Verweis /Library/Frameworks/Python.framework/Versions/3.4/Python
auf unsere gewünschte Python-Installation ändern und aktualisieren. Dazu müssen wir den Befehl install_name_tool
verwenden.
Sobald wir den Befehl ausgeführt haben, haben wir den neuen Python-Installationsort auf die Bibliothek verwiesen, die wir verwenden möchten.
install_name_tool -change /Library/Frameworks/Python.framework/Versions/3.4/Python \
/usr/local/Cellar/python/3.8.8/Frameworks/Python.framework/Versions/3.8/lib/libpython3.8.dylib \
LeapPython.so
Jetzt können wir unseren Python-Code ausführen, ohne dass die Fehlermeldung PyThreadState_Get: no current thread
angezeigt wird.
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung