Buen día, gente. Estoy tratando de ejecutar un código para enviar y recibir mensajes OSC (OpenSoundControl) desde y hacia OBS (OpenBoradcasterSoftware). La librería que quiero usar es python-osc. Es simple y funciona bien… desde la consola. Desde OBS, se puede importar la parte de cliente, para enviar mensajes… pero para recibir, cuando hago from pythonosc import osc_server
, salta este error:
3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0]
Traceback (most recent call last):
File “/home/mario/videoconfestejo/obs-scripts/OSCOBS_videoconfestejo.py”, line 18, in
from pythonosc import osc_server
File “/home/mario/.local/lib/python3.7/site-packages/pythonosc/osc_server.py”, line 4, in
import asyncio
File “/usr/lib/python3.7/asyncio/init.py”, line 8, in
from .base_events import *
File “/usr/lib/python3.7/asyncio/base_events.py”, line 39, in
from . import events
File “/usr/lib/python3.7/asyncio/events.py”, line 14, in
import contextvars
File “/usr/lib/python3.7/contextvars.py”, line 1, in
from _contextvars import Context, ContextVar, Token, copy_context
ImportError: /usr/lib/python3.7/lib-dynload/_contextvars.cpython-37m-x86_64-linux-gnu.so: undefined symbol: PyContext_Type
Como se ve al principio, le hice un sys.version
para saber la versión de Python. Es la misma que tengo en mi sistema (Debian 10 Buster). Pero desde la consola funciona perfecto y desde OBS salta el error.
Cabe aclarar que OBS lo compilé acá mismo.
Lo reporté en el github de python-osc y en obs-studio. En este útlimo alguien me dijo:
Regardless of the version of python installed on your system OBS documentation clearly states that version 3.6 is the only one supported
Python/Lua Scripting — OBS Studio 30.0.0 documentation
The version match is defined at compile time as swig is used for interop between C code and python
Pero sigue siendo confuso para mí. Lo compilé acá, ni siquiera tengo la versión 3.6 de Python instalada.
¿Qué se puede hacer?