Macros/Guía de Python/Llamadas a Python desde BASIC

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/Python Guide/Calling Python from Basic and the translation is 75% complete.
    Outdated translations are marked like this.
    Other languages:

    ⇐ Volver al índice


    Digamos que tiene un script (una macro) en la carpeta destinada a ellos en el perfil de usuario, como se mencionó en la Introducción:

    En Linux La carpeta donde se almacenan las macros o scripts de Python en el perfil de usuario es /home/USER/.config/libreoffice/4/user/Scripts/python.

    Digamos que en esa carpeta se encuentra el archivo utcNow.py:

    from datetime import datetime
    
    def utcNow():
        return datetime.utcnow().strftime("%Y-%m-%d %H:%M")
    
    g_exportedScripts = (utcNow,)

    Ahora, decide usar esta función en una macro con BASIC. Para ello puede hacer lo siguiente:

    Function UtcNow
        oScriptProvider = ThisComponent.getScriptProvider()
        oScript = oScriptProvider.getScript("vnd.sun.star.script:utcNow.py$utcNow?language=Python&location=user")
        UtcNow = oScript.invoke(array(), array(), array())
    End Function

    La función UtcNow (note el uso de mayúsculas diferentes en el nombre de la función en Python y en BASIC) contendría el texto en BASIC que devuelve la función Python. Observe cómo la llamada a getScript especifica el nombre del script Python, el nombre de la función (no necesariamente el mismo) y la localización (user).

    Existen más ajustes que puede revisar en Scripting Framework URI Specification.

    Si no puede conseguir que BASIC encuentre el script de Python, trate de ejecutar LibreOffice en la línea de comandos precedido por las variables de entorno PYSCRIPT_LOG_LEVEL=DEBUG y PYSCRIPT_LOG_STDOUT=1. De esa manera verá dónde está buscando LibreOffice.

    ⇐ Volver al índice