Avvio della console interattiva Python

La console interattiva Python, conosciuta anche come interprete Python o shell Python, offre ai programmatori un modo rapido per eseguire comandi e provare e analizzare il codice senza dover creare un file. L'introspezione degli oggetti UNO, così come la documentazione dei moduli Python di LibreOfficeDev, si può ottenere da terminale.

note

From a full-featured LibreOfficeDev installed package, a Basic or Python script locates the embedded copy of Python console.


Uso di macro in Basic

This routine resorts to Platform class module in order to distinguish the actual operating system.


        Sub interpreter_console
            Set opsys = New Platform
            ps = CreateUnoService("com.sun.star.util.PathSettings")
            install_path = ConvertFromURL(ps.Module)
            If opsys.isMacOSX Then
                cmd = "/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal "
                pgm_path = Array( install_path,"..","Resources","python" )
            ElseIf opsys.isLinux Then
                cmd = "x-terminal-emulator -e "
                pgm_path = Array(install_path,"python")
            ElseIf opsys.isWindows Then
                cmd = ""
                pgm_path = Array("python")
            EndIf
            python_interpreter = Join( pgm_path, GetPathSeparator() )
            Shell(cmd + python_interpreter)
        End Sub
    

Uso di macro in Python


        # -*- coding: utf-8 -*-
        from __future__ import unicode_literals
           
        import uno, os, subprocess
            
        def interpreter_console():
            ctx = XSCRIPTCONTEXT.getComponentContext()
            smgr = ctx.getServiceManager()
            ps = smgr.createInstanceWithContext("com.sun.star.util.PathSettings", ctx)
            install_path = uno.fileUrlToSystemPath(ps.Module)
            pgm = install_path + os.sep + "python"  # Python shell/console path
            subprocess.Popen(pgm)  # Start Python interactive Shell
            
    

Risultato di esempio

Console interattiva di Python

Console alternativa

Come alternativa usate la console dell'estensione APSO:

Console di APSO