运行 Python 交互式控制台

Python 交互式控制台,也被称为 Python 解析器或 Python shell,为开发者提供快速执行命令以及不必创建文件就测试代码的途径。可在终端进行 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

请支持我们!