Macros/Python Guide/Calling Python from Basic/ja

はじめにで述べたように、ユーザー固有のスクリプトディレクトリにPythonスクリプトがあるとします.

Linuxの場合では、/home/USER/.config/libreoffice/4/user/Scripts/pythonになります. そのディレクトリにあるutcNow.pyというファイルの内容です.

from datetime import datetime

def utcNow: return datetime.utcnow.strftime("%Y-%m-%d %H:%M")

g_exportedScripts = (utcNow,)

さて、この関数をBasicから使いたいと思ってます. その場合は以下のようにすると良いでしょう.

oScriptProvider = ThisComponent.getScriptProvider oScript = oScriptProvider.getScript("vnd.sun.star.script:utcNow.py$utcNow?language=Python&location=user") UtcNow = oScript.invoke(array, array, array)

UtcNowには、Pythonの関数が返すBasicの文字列が入ります. getScriptの呼び出しで、Pythonスクリプトのファイル名、関数名（必ずしも同じではありません！）、場所（user）を指定していることに注意してください. その他の設定は、スクリプティングフレームワークURI仕様にあります.

Basicがスクリプトを見つけられない場合は、環境変数PYSCRIPT_LOG_LEVEL=DEBUG PYSCRIPT_LOG_STDOUT=1を指定してLibreOfficeを実行してみてください. そうすれば、LibreOfficeがどこを見ているかがわかります.