„Python“ interaktyvus apvalkalas

Turinys

# Vykdoma „Python“ interaktyvi konsolė

Interaktyvioji „Python“ konsolė, dar vadinama „Python“ vertėju arba „Python“ apvalkalu, suteikia programuotojams galimybę greitai atlikti komandas ir išbandyti ar testuoti kodą nesukuriant failo. UNO objektų apžiūrą ir „LibreOfficeDev Python“ modulių dokumentaciją galima gauti iš terminalo.

## Using the Terminal

From a LibreOfficeDev copy included in a GNU/Linux platform, use the terminal as shown:

whereis or type terminal commands help locate Python interactive 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:~$

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

## Using a Basic macro

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

## Using a 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

### Example output

## Alternative console

Use APSO extension console as an alternative:

Susijusios temos

Operacinės sistemos identifikavimas

PythonShell function in ScriptForge.Exception service

Python programavimo pavyzdžiai

LibreOfficeDev Python skriptai žinynas

Paremkite mus!