Actualización: Parece que es necesario descartar de plano las rutas del sistema.
En el mundo de Kodi, la transición de Python 2 a Python 3 ha dejado a muchos desarrolladores de add-ons rascándose la cabeza. Si eres usuario de Kodi en Linux, es probable que hayas experimentado fallos aparentemente aleatorios y recurrentes en tu plataforma. Pero, ¿cuál es la causa de estos problemas?
El cambio a Python 3
Kodi dio un gran paso al cambiar el ya obsoleto Python 2 a la nueva y mejorada versión 3. Sin embargo, esta migración no solo trajo mejoras, sino también dolores de cabeza, especialmente para los usuarios de Linux.
Las rutas de sys.path
La migración de Kodi a Python 3 implicó una transición importante, sobretodo en Linux: Kodi comenzó a utilizar el intérprete de Python 3 del sistema operativo (
Cuando en Python se busca un módulo, se busca en el orden de las rutas presentes en la variable
Esto deriva en que se utilcen primero los módulos instalados en el sistema operativo antes que los de Kodi mismo. La mezcla entre módulos de Linux y de Kodi conduce a fallos y crasheos, muchas veces sin explicación aparente.
Las soluciones
Entonces, ¿cómo podemos solucionar este problema? Existen varias soluciones, aunque algunas pueden ser un tanto forzadas, mientras que otras dependen de los desarrolladores de add-ons..
Utilizar una versión diferente de Python con Kodi.
Esto separa las bibliotecas del sistema de las de Kodi y puede resolver el problema para todos los add-ons. Puede hacerse siguiendo este tutorial.
Sin embargo, esto requiere parchar el binario de Kodi, lo que tiene sus propios problemas.
Modificar la variable
Para los desarrolladores de add-ons, un posible parche independiente de la versión de Python es modificar la variable
Código de ejemplo, se debe colocar al principio de su punto de entrada (launcher, default, plugin, addon...):
Sin embargo, hay que tener en cuenta que este método podría saltarse alguna biblioteca de manera inesperada, aunque la posibilidad es mínima.
El llamado a Team Kodi
La solución definitiva está en manos del equipo de desarrollo de Kodi. La corrección requeriría modificar el
De parte del equipo de desarrollo de Alfa, queremos agradecer a la comunidad por su apoyo y paciencia en este proceso de mejora continua. Seguimos trabajando para mejorar la experiencia de Alfa en todas las plataformas, y su retroalimentación es invaluable.
Esperamos que esta información les sea de ayuda.
En el mundo de Kodi, la transición de Python 2 a Python 3 ha dejado a muchos desarrolladores de add-ons rascándose la cabeza. Si eres usuario de Kodi en Linux, es probable que hayas experimentado fallos aparentemente aleatorios y recurrentes en tu plataforma. Pero, ¿cuál es la causa de estos problemas?
El cambio a Python 3
Kodi dio un gran paso al cambiar el ya obsoleto Python 2 a la nueva y mejorada versión 3. Sin embargo, esta migración no solo trajo mejoras, sino también dolores de cabeza, especialmente para los usuarios de Linux.
Las rutas de sys.path
La migración de Kodi a Python 3 implicó una transición importante, sobretodo en Linux: Kodi comenzó a utilizar el intérprete de Python 3 del sistema operativo (
/usr/bin/python3
) y, malamente, también sus módulos.Cuando en Python se busca un módulo, se busca en el orden de las rutas presentes en la variable
sys.path
. Por defecto, el Python 3 de Linux agrega al principio las rutas de las bibliotecas del sistema operativo, y luego, Kodi agrega sus propias rutas:
Python:
Por favor,
Acceder
o
Registrarse
para ver el contenido
Las soluciones
Entonces, ¿cómo podemos solucionar este problema? Existen varias soluciones, aunque algunas pueden ser un tanto forzadas, mientras que otras dependen de los desarrolladores de add-ons..
Utilizar una versión diferente de Python con Kodi.
Esto separa las bibliotecas del sistema de las de Kodi y puede resolver el problema para todos los add-ons. Puede hacerse siguiendo este tutorial.
Sin embargo, esto requiere parchar el binario de Kodi, lo que tiene sus propios problemas.
Modificar la variable
sys.path
(desarrolladores de add-ons)Para los desarrolladores de add-ons, un posible parche independiente de la versión de Python es modificar la variable
sys.path
, eliminando las rutas de paquetes del sistema operativo.Código de ejemplo, se debe colocar al principio de su punto de entrada (launcher, default, plugin, addon...):
Python:
Por favor,
Acceder
o
Registrarse
para ver el contenido
El llamado a Team Kodi
La solución definitiva está en manos del equipo de desarrollo de Kodi. La corrección requeriría modificar el
sys.path
de manera global para descartar las rutas de los paquetes del sistema operativo, evitando así cualquier conflicto. Lamentablemente, tenemos poco control sobre esta solución, por lo que la paciencia es fundamental.De parte del equipo de desarrollo de Alfa, queremos agradecer a la comunidad por su apoyo y paciencia en este proceso de mejora continua. Seguimos trabajando para mejorar la experiencia de Alfa en todas las plataformas, y su retroalimentación es invaluable.
Esperamos que esta información les sea de ayuda.
Última edición: