Περιεχόμενα

# Εκτέλεση διαδραστικής κονσόλας Python

Η διαδραστική κονσόλα Python, γνωστή και ως διερμηνευτής Python ή κέλυφος Python, παρέχει στους προγραμματιστές με έναν γρήγορο τρόπο εκτέλεσης εντολών και δοκιμάζει και ελέγχει τον κώδικα χωρίς τη δημιουργία αρχείου. Ο αυτοέλεγχος αντικειμένων UNO καθώς και η τεκμηρίωση των αρθρωμάτων Python του LibreOffice μπορεί να ληφθεί από τον τερματικό.

## Χρήση τερματικού

Από ένα αντίγραφο LibreOffice που περιλαμβάνεται σε λειτουργικό GNU/Linux, χρησιμοποιήστε το τερματικό όπως φαίνεται:

Οι εντολές τερματικού whereis ή type βοηθούν στον εντοπισμό της διαδραστικής κονσόλας 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:~$

Από ένα πλήρως εγκατεστημένο πακέτο LibreOffice, ένα σενάριο Basic ή Python εντοπίζει το ενσωματωμένο αντίγραφο της κονσόλας Python.

## Χρήση μακροεντολής Basic

Αυτή η ρουτίνα καταφεύγει στην μονάδα κλάσης Platform προκειμένου να διακρίνει το πραγματικό λειτουργικό σύστημα.

            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

## Χρήση μακροεντολής 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

### Έξοδος παραδείγματος

## Εναλλακτική κονσόλα

Χρησιμοποιήστε την κονσόλα επέκταση APSO ως εναλλακτική:

Σχετικά θέματα

Ταυτοποίηση λειτουργικού συστήματος

PythonShell στη λειτουργία Υπηρεσία ScriptForge.Exception

παραδείγματα προγραμματισμού Python

Βοήθεια δεσμών ενεργειών Python του LibreOffice

Παρακαλούμε, υποστηρίξτε μας!