从基本函数调用 Python 脚本时出错



我是Python和Basic的新手。我正在尝试从LibreOffice(LO(Calc中的Google Sheets复制IMPORTHTML函数。简而言之,我想在Calc中创建一个GetHtmTable(URL,Table Index(基本函数,它将调用Python脚本来完成繁重的工作。

因此,基于Villeroy的好例子,我在LO 5.1.6.2中实现了基本的SOUNDEX函数,该函数调用Python脚本sheetFunctions.py以熟悉该过程。我的环境是Linux Mint 18,我使用Python 3,我导入了各种库,如Uno,PIP等。我使用PycharmProjects作为Python编辑器。

我在LO Calc菜单工具下清楚地看到>macro->organ宏->pythonsheetFunctions.pyPython脚本,它确实在文件夹中/usr/lib/libreoffice/share/Scripts/python

每当我运行 SOUNDEX 基本功能时,都会看到以下错误消息:

基本运行时错误。发生异常 类型: com.sun.star.script.provider.ScriptFrameworkErrorException Message: :一 函数中的文件打开/
usr/lib/libreoffice/program/pythonscript.py:429 时出错 getModuleByUrl(( [lastRead = self.sfa.getDateTimeModified( url (]/
usr/lib/libreoffice/program/pythonscript.py:993 in function getScript(( [mod = self.provCtx.getModuleByUrl( fileUri (]

我尝试调试SOUNDEX基本功能,发现阻塞点是程序运行时getScript("vnd.sun.star.script:sheetFunctions.py$soundex?language=Python&location=user")

几天来我一直在努力克服这个错误,但我必须承认没有成功。

我想知道我是否需要在基本环境中引入一些额外的扩展或在 Linux/Python 环境中缺少加载项?

我按位置=文档更改了位置=用户,然后再次卡住了。由于命令sudo apt-get install libreoffice-script-provider-python,我最近添加了libreoffice-script-provider-python,但这没有帮助。我还在 Calc 文档中嵌入了 Python 脚本,但同样这并没有解决问题。

位置名称不匹配。 自写脚本的标准位置是在用户目录下。 这是location=user,例如~/.config/libreoffice/4/user/Scripts/python

然后是location=share,指的是您问题中的路径。 这些参数在 URI 规范中的Python 脚本下进行了描述。

另请参阅我对这个问题的回答。 如果您还没有尝试 APSO 扩展,请务必尝试。 特别是,APSO 在使用location=document时会有所帮助,因为嵌入需要几个步骤,包括编辑清单.xml。

最新更新