Inhoud

# Python Interactieve console uitvoeren

Het Python interactieve console, ook bekend als Python interpreter en als Python shell, biedt programmeurs een snelle mogelijkheid om commando's uit te voeren en de code te testen zonder een bestand aan te maken. Het onderzoeken van UNO-objecten als ook het verkrijgen van documentatie over LibreOffice Python-modules is via de terminal mogelijk.

Van een volledig functioneel LibreOffice geïnstalleerd package, gebruik of Basic of Python:

## Met gebruik van een BASIC-macro

            Sub interpreter_console
                Const UNIX = 4
                ps = CreateUnoService("com.sun.star.util.PathSettings")
                install_path = ConvertFromURL(ps.Module)
                cmd = IIF(GetGuiType()=UNIX,"x-terminal-emulator -e ","")
                Shell(cmd + install_path + GetPathSeparator() + "python" )
            End Sub

## Met gebruik van een Python-macro

            # -*- 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

### Voorbeeld uitvoer

## Met gebruik van de terminal

Met de kopie van LibreOffice in het GNU/Linux platform, gebruik de terminal als volgt:

De terminal-commando's whereis en type zorgen voor het vinden van het Python interactieve console:

user@computer:~$ type -p python3
/usr/bin/python3
user@computer:~$ /usr/bin/python3
Python 3.7.5 (default, Nov 20 2019, 09:21:52)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
>>> dir(uno)
['Any', 'Bool', 'ByteSequence', 'Char', 'Enum', 'PY2', 'Type', '_ConstantGroup', '__builtin__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_builtin_import', '_component_context', '_impl_getConstantGroupByName', '_uno_extract_printable_stacktrace', '_uno_import', '_uno_struct__eq__', '_uno_struct__getattr__', '_uno_struct__init__', '_uno_struct__ne__', '_uno_struct__repr__', '_uno_struct__setattr__', '_uno_struct__str__', 'absolutize', 'createUnoStruct', 'fileUrlToSystemPath', 'generateUuid', 'getClass', 'getComponentContext', 'getConstantByName', 'getCurrentContext', 'getTypeByName', 'invoke', 'isInterface', 'os', 'pyuno', 'setCurrentContext', 'six_string_types', 'socket', 'sys', 'systemPathToFileUrl', 'traceback', 'warnings']
>>> exit()
user@computer:~$

## Alternatieve console

Gebruik als alternatief de extensie APSO-console:

Verwante onderwerpen

Python programmeringsvoorbeelden

Hulp bij LibreOffice Python-scripts

PythonShell functie in ScriptForge.Exception service