Las macros python embebidas en un archivo de Calc no se ven entre ellas

Hola a todos. Estoy haciendo una aplicación en una hoja de LibreOffice Calc, la cual he descrimpido y agregado dentro de la carpeta Scripts/Python todas las macros o scripts .py que luego llamo desde Calc y también he modificado el archivo manifiest.xml. El tema es que cuando ejecuto una macro python y esa asu vez tiene un import a otro .py me larga un error de “modulo no encontrado”. No sé cómo hacer para los modulos que se llaman o importen sean visibles entre los scripts que comprimí dentro del archivo .ods. No se si me falta importar algo más o alguna sentencia que coloque un path en común para que los scripts se puedan ver o acceder entre ellos.
Dejo abajo el código de la macro que llama a otro modulo .py y no lo ve:

import sys
from master import ConvertirxlsDSS

def ejecuta(*args):

ConvertirxlsDSS()

Me olvide de decir que el modulo que no encuentra es “master”

Es normal, el espacio de nombres dentro del archivo esta en memoria, recuerda que un ODS no es más que un ZIP, y no esta “visible”, lo puedes comprobar con:

import sys

for p in sys.path:
    print(p)

debes de ver algo así:

/usr/lib/libreoffice/program
/usr/lib/python310.zip
/usr/lib/python3.10
/usr/lib/python3.10/lib-dynload
/home/mau/.local/lib/python3.10/site-packages
/usr/lib/python3.10/site-packages
/usr/lib/libreoffice/program/
/home/mau/.config/libreoffice/4/user/Scripts/python/pythonpath

Entonces, necesitas cargar el archivo explícitamente, suponiendo que lo has agregado correctamente, todos los PY al archivo manifiest.xm:

import uno
import sys

doc = XSCRIPTCONTEXT.getDocument()
path = uno.fileUrlToSystemPath(doc.URL) + '/Scripts/python/'
sys.path.insert(0, path)

from master import ConvertirxlsDSS

Mira el archivo que te anexo…
test.ods (9.7 KB)

Genial Mauricio, ahí probé y efectivamente ahora sí se puede invocar. Ahora lo pruebo dentro del proyecto completo. Gracias!!!