首页 > 解决方案 > 使用python uno的libreoffice管道,计算机之间的连接不一致,有什么区别?

问题描述

我目前正在多台计算机上检查我的 python 项目文件(所有 Debian 测试)。我遇到了不一致的结果并且没有解决问题的想法。该项目使用 python-uno 管道与 libreoffice 进行通信,如下所示:

localContext = uno.getComponentContext()
resolver = localContext.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver",localContext)
cnxt =  resolver.resolve('uno:pipe,name=OOo_pipe;urp;StarOffice.ComponentContext')

问题是此代码在一台计算机上工作,但在其他两台计算机上阻塞。错误信息如下:

main .NoConnectException:连接器:无法连接到管道 OOo_pipe(10)

已安装的版本是 libreoffice 7.0.4.2、python 3.9.2、/usr/share/applications/libreoffice-writer.desktop 已检查,并且相同。当被唤起时,/usr/lib/libreoffice/program/soffice.bin 在所有计算机上运行。(也唤起脚本是相同的)

这些计算机中安装的软件包不同。

什么可能导致这种不一致?

标签: pipedesktop-applicationlibreoffice

解决方案


我发现 Tools -> Options... -> LibreOffice > Advanced > Open Expert Configuration > org.openoffice.SetUp > Office > ooSetupConnectionURL 下的选项字符串不同。对于工作组合,它是“pipe,name=OOo_pipe;urp;StarOffice.ServiceManager”,并且是空的,没有工作。 文档看起来有些松懈。


推荐阅读