我正在尝试获取sample和其他示例代码,我发现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工作的任何建议?
答案 0 :(得分:5)
在[1]中:导入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'调用'service manager'方法'使用context创建实例'。“
OMG。毫无疑问,一个程序如此恶劣,过于具体,错综复杂,自我指涉而不是自我意识......你称之为“本地”的子方法,并且必须告诉该子方法“本地”是什么意思?说什么?向无能为力的开发人员致敬。快乐的调试。
征求意见和积分。
pyuno问题我实际上无法做任何事情,但我鼓励在明确的截止日期前坚持患者的试验方法。
我还建议直接提交B.U.G.与pyuno人(如果他们实际上是活跃的 - 我得到的印象,这是一个相当沉默的项目),因为无意义的错误消息:有问题的方法似乎请求一个字符串参数,它得到一个,它抱怨它做了。这对于声明代码错误的合理程度是没有帮助的。
在这种情况下,我经常会查看来源。但你已经这样做了,对吧? 当我寻求帮助时,我讨厌人们回答'你为什么要这样做?'然而,有时某人(也许你)确实在这个过程中提出了另一条可行的路径,一条不包括特定问题的解决方案,但有助于解决上级问题。所以,如果我可以问:大局是什么?