Openoffice3.1 pyuno混淆错误

alt*_*urt 2 python openoffice.org uno pyuno

我正在尝试获取样本和其他示例代码,我发现pyuno运行openoffice 3.1.1和python 2.5没有运气.

不幸的是,pyuno没有提供任何关于出错的线索.


In [1]: import uno
In [2]: local = uno.getComponentContext()
In [3]: resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)
---------------------------------------------------------------------------
com.sun.star.uno.RuntimeException         Traceback (most recent call last)

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

com.sun.star.uno.RuntimeException: : 'tuple' object has no attribute 'getTypes', traceback follows
no traceback available

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

den@ev:/opt/openoffice.org/basis3.1/program > python officehelper.py
Traceback (most recent call last):
  File "officehelper.py", line 42, in 
    from com.sun.star.connection import NoConnectException
  File "uno.py", line 273, in _uno_import
    RuntimeException = pyuno.getClass( "com.sun.star.uno.RuntimeException" )
RuntimeError: pyuno.getClass: expecting one string argument

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

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

flo*_*low 5

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

OOP出了问题,imho.我知道它的OT,但我试着让uno上班,然后放弃了.这是纯粹的Steve Yegge散文(请阅读http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html).

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

"让'本地'成为'uno'调用方法'获取组件上下文'的结果.让'服务管理器'成为'本地'的属性'服务管理器'.让'解析器'成为调用''的结果'服务管理器'方法'使用上下文创建实例',使用参数'com sun star bridge uno url resolver'和'local'."

我的天啊.毫无疑问,一个程序如此恶劣,过于具体,错综复杂,自我指涉而不是自我意识......你称之为"本地"的子方法,并且必须告诉该子方法"本地"是什么意思?说什么?向无能为力的开发人员致敬.快乐的调试.

添加:

thx评论和积分.

pyuno问题我实际上无法做任何事情,但我鼓励在明确的截止日期前坚持患者的trytrytry方法.

我还建议与pyuno人提交一个彻头彻尾的BUG(如果他们实际上是活跃的 - 我得到的印象是这是一个相当沉默的项目),因为无意义的错误消息:有问题的方法似乎请求一个字符串参数,它得到一个,它抱怨它.这对于声明代码错误的合理程度是没有帮助的.

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

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