Vsebina

# Zagon interaktivne konzole Python

Interaktivna konzola Python, znana tudi kot tolmač Pythona ali lupina Python, programerjem ponuja hitro pot do izvajanja ukazov in preizkušanja kode, ne da bi ustvarjali datoteko. Introspekcijo predmetov UNO ter dokumentacijo modulov LibreOffice Python lahko pridobite v terminalu.

## Uporaba terminala

Iz kopije LibreOffice, vključene v platformo GNU/Linux, uporabite terminal, kot je prikazano spodaj:

Ukaza v terminalu whereis in type pomagata poiskati interaktivno konzolo Python:

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:~$

V polno nameščenem pisarniškem paketu LibreOffice skript Basic ali Python poišče vdelano kopijo konzole Python.

## Uporaba makra v jeziku Basic

Ta procedura se zanaša na razredni modul Platform, da razpozna dejanski operacijski sistem.

            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

## Uporaba makra v jeziku 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

### Primer izhoda

## Nadomestna konzola

Uporabite konzolo razširitve APSO (Alternative Python Script Organizer) kot alternativo:

Podobne teme

Prepoznavanje operacijskega sistema

Funkcija PythonShell v storitvi ScriptForge.Exception

Primeri programov v Pythonu

Pomoč LibreOffice za skripte v jeziku Python