Error fatal de Python: PyThreadState_Get: No hay hilo actual
-
Qué causa el error
PyThreadState_Get: no hay hilo actual
-
Use
sudo
para resolver el errorPyThreadState_Get: no hay hilo actual
-
Use
otool
para 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