Error fatal de Python: PyThreadState_Get: No hay hilo actual
-
Qué causa el error
PyThreadState_Get: no hay hilo actual -
Use
sudopara resolver el errorPyThreadState_Get: no hay hilo actual -
Use
otoolpara resolver el errorPyThreadState_Get: no hay hilo actual
En nuestra máquina local, podríamos tener diferentes instalaciones de versiones de Python que solo pueden hacer lo que es limitado o nuevo para esa versión en un momento dado.
Podemos tener problemas si escribimos código dentro de un contexto de versión con todas sus dependencias y ese código se ejecuta en otro contexto de versión de Python.
Uno de estos problemas es el PyThreadState_Get: no hay hilo actual, y en este artículo, discutiremos qué lo causa y cómo resolverlo en su PC Mac/Linux local.
Qué causa el error PyThreadState_Get: no hay hilo actual
Varias instalaciones de Python tienen diferentes módulos y dependencias adjuntos, pero cuando ejecutamos el código de Python, el enlace de Python incorrecto podría terminar vinculándose con el sistema proporcionado por nuestra PC. Este escenario ocurre a menudo cuando se usa macOS.
Por lo tanto, debemos asegurarnos de que el Python correcto (con nuestros módulos) ejecute nuestro código y vincule los módulos correctos a nuestro sistema Python.
Use sudo para resolver el error PyThreadState_Get: no hay hilo actual
Si tiene múltiples instalaciones de Python, diferentes bibliotecas pueden usar Python, y para resolver el mensaje de error PyThreadState_Get: no current thread, podemos cambiar el Python activo a la instalación de Python que son las bibliotecas predeterminadas a las que estaba llamando anteriormente dentro tu codigo.
Para cambiar la instalación de Python activa, podemos usar el siguiente comando sudo.
sudo port select --list python
La salida del comando:
Available versions for python:
none
python26-apple
python27
python27-apple (active)
python34
Del resultado anterior, la instalación activa de Python es python27-apple, y para cambiar la instalación de Python que contiene las dependencias y módulos, necesita python34.
Para cambiar a python34, podemos usar el comando sudo a continuación.
sudo port select python python34
Después de ejecutar el comando anterior, podemos verificar si funcionó usando el comando --list.
sudo port select --list python
La salida del comando ahora debería mostrar que python34 está activo.
Available versions for python:
none
python26-apple
python27
python27-apple
python34 (active)
Use otool para resolver el error PyThreadState_Get: no hay hilo actual
A menudo, la causa principal del mensaje de error PyThreadState_Get: no current thread al ejecutar su código suele ser el uso de una biblioteca (declaración importar) con otra instalación de Python que no la reconoce. Podemos solucionar el problema utilizando las utilidades otool e install_name_tool.
Para resolverlo, necesitaremos usar la biblioteca de Python (por ejemplo, Leap Motion) con la instalación alternativa de Python y debemos actualizar la ruta del cargador de la biblioteca para hacer referencia a la instalación de Python que queremos.
Primero, use el comando otool para verificar las rutas actuales del cargador.
otool -L LeapPython.so
La salida del comando:
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)
Por lo tanto, debemos cambiar y actualizar la ubicación/referencia actual de Python, /Library/Frameworks/Python.framework/Versions/3.4/Python, a nuestra instalación deseada de Python. Para hacer eso, necesitamos usar el comando install_name_tool.
Una vez que ejecutamos el comando, hemos referenciado la nueva ubicación de instalación de Python a la biblioteca que queremos usar.
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
Ahora, podemos ejecutar nuestro código Python sin enfrentar el mensaje de error PyThreadState_Get: no current thread.
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.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python
