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 LibreOffice, si può ottenere da terminale.

note

Da un'installazione completa di LibreOffice, uno script in Basic o in Python trova la copia incorporata della console di Python.


Uso di macro in Basic

Questa routine fa ricorso al modulo della classe Platform al fine di distinguere il sistema operativo corrente.


        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

Sosteneteci!