Python対話コンソールの実行

PythonインタープリタやPythonシェルとも呼ばれるPython対話コンソールを使うと、ファイルを作成せずにコマンドを実行したり、コードを試したり、テストしたりできます。UNOオブジェクトのイントロスペクションとLibreOffice Pythonモジュールのドキュメントは、ターミナルから入手できます。

note

From a full-featured LibreOffice 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

Python Interactive Console

Alternative console

Use APSO extension console as an alternative:

APSO console

ご支援をお願いします!