2

我正在尝试获取我找到的示例和其他示例代码,用于在 openoffice 3.1.1 和 python 2.5 上运行的 pyuno,但没有运气。

不幸的是,pyuno 没有提供任何关于哪里出了问题的线索。

在 [1] 中:导入 uno
在 [2] 中:local = uno.getComponentContext()
[3]中:resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)
-------------------------------------------------- -------------------------
com.sun.star.uno.RuntimeException Traceback(最后一次调用)

/opt/openoffice.org/basis3.1/program/ in ()

com.sun.star.uno.RuntimeException: : 'tuple' 对象没有属性 'getTypes',回溯如下
没有可用的回溯

下面是 /opt/openoffice.org/basis3.1/program/officehelper.py 的执行输出,它基本上启动无头办公室实例并返回相关的上下文对象。

den@ev:/opt/openoffice.org/basis3.1/program > python officehelper.py
回溯(最近一次通话最后):
  文件“officehelper.py”,第 42 行,在
    从 com.sun.star.connection 导入 NoConnectException
  _uno_import 中的文件“uno.py”,第 273 行
    RuntimeException = pyuno.getClass("com.sun.star.uno.RuntimeException")
RuntimeError:pyuno.getClass:需要一个字符串参数

pyuno 只需要 1 个参数,它必须是一个字符串,如http://udk.openoffice.org/source/browse/udk/pyuno/source/module/pyuno_module.cxx?rev=1.14&view=markup中定义的 我不能无论如何,设法让 pyuno.getClass 工作。

关于如何让 pyuno 工作的任何建议?

4

1 回答 1

5

在 [1] 中:导入 uno 在 [2] 中:local = uno.getComponentContext() 在 [3] 中:resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)

OOP 出错了,恕我直言。我知道它的 OT,但我之前试过让 uno 工作,然后放弃了。这是纯粹的 Steve Yegge 散文(在http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html上阅读)。

当您将这些行翻译成更易说的形式时,它们大致如下:

“让'local'是调用'uno'的方法'get component context'的结果。让'service manager'是'local'的属性'service manager'。让'resolver'是调用'服务管理器'方法'使用上下文创建实例',使用参数'com sun star bridge uno url resolver'和'local'。”

我的天啊。毫不奇怪,一个程序如此糟糕地过度具体、复杂和自我参照,同时又没有自我意识……你称之为“本地”的子方法,并且必须告诉该子方法“本地”是什么意思?说什么?向那些可以解决这个问题的无所畏惧的开发人员致敬。愉快的调试。

添加:

thx 的评论和积分。

事实上,pyuno 问题我无能为力,但我鼓励在明确的最后期限内说服患者尝试尝试方法。

我还建议向 pyuno 人提交一个彻底的 BUG(如果他们实际上是活跃的——我觉得这是一个相当安静的项目),因为无意义的错误消息:有问题的方法似乎要求一个字符串参数,它得到了一个,它抱怨它做到了。这对于声明代码错误变得合理的程度没有帮助。

在这种情况下,我经常调查来源。但你已经这样做了,对吧?

我讨厌人们反问‘你为什么要这样做?当我寻求帮助时。然而,有时有人(也许是你)确实在这个过程中提出了另一条可行的路径,这条路径不包括特定问题的解决方案,但有助于解决上级问题。所以,如果我可以问:大局是什么?

于 2009-10-24T21:53:20.303 回答