Pergunta

Eu estou tentando obter a amostra e outros códigos de amostra i encontrar para pyuno correndo com o OpenOffice 3.1.1 e python 2.5 sem sorte.

Infelizmente, pyuno não dá nenhuma pista sobre o que está errado.

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

abaixo é a saída de execução de /opt/openoffice.org/basis3.1/program/officehelper.py que basicamente botas a instância escritório sem cabeça e retorna um objeto de contexto relacionado.

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 leva apenas 1 argumento e hasto ser uma string, conforme definido no http://udk.openoffice.org/source/browse/udk/pyuno/source/module/pyuno_module.cxx?rev=1.14&view=markup eu não conseguia arranjar trabalho pyuno.getClass de qualquer maneira.

quaisquer sugestões sobre como obter pyuno trabalho?

Foi útil?

Solução

Em [1]: uno de importação Em [2]: = locais uno.getComponentContext () Em [3]: resolvedor = local.ServiceManager.createInstanceWithContext ( "com.sun.star.bridge.UnoUrlResolver", local)

OOP errado foi, IMHO. eu sei que é OT, mas eu tentei ficar uno ao trabalho antes, e desistiu. isso é pura Steve Yegge Prosa (leia-se sobre http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html ).

quando você traduzir essas linhas em uma forma mais dizível, eles saem mais ou menos como:

"Let 'local' ser o resultado de chamar o método 'obter o contexto do componente' de 'uno'. Deixe o 'gerente de serviço' ser o atributo 'gerente de serviço' de 'local'. Vamos resolver 'ser o resultado de chamar o método 'gerente de serviço' 'criar instância com contexto', usando argumentos 'com sol ponte estrela uno url resolver' e 'local' ".

omg. nenhuma surpresa que algo está errado com um programa que é tão específica sobre atrozmente, complicado, e auto-referencial, enquanto não sendo auto-consciente ... você chamar uma sub-método de 'local' e que sub-método tem de ser dito o que significa 'locais'? Diga o quê? o chapéu para os desenvolvedores destemidos que pode cortar através deste. depuração feliz.

ADICIONADO:

thx para comentários e pontos.

o problema pyuno eu não posso fazer nada a respeito de fato, mas eu incentivar a perseguir uma abordagem paciente trytrytry com um prazo claro.

i também sugerem a apresentar um B.U.G. outright com as pessoas pyuno (se eles são de fato ativa-i tem a impressão de que este foi um projeto bastante silencioso) por causa da mensagem de erro absurdo: o método em questão parece pedido um argumento de string, e torna-se um, e ele reclama ele fez. isto é assim não é útil na medida em que se torne razoável para declarar uma falha código.

Neste tipo de situação eu muitas vezes olhar para as fontes. mas você já fez isso, certo?

Eu odeio as pessoas a pedir de volta ‘por que você quer fazer isso?’ Quando eu pedir ajuda. No entanto, às vezes alguém (talvez você) não chegar a um outro caminho viável no processo, que não inclui uma solução para o problema particular, mas ajuda a resolver o superordinate. Então, se eu pode perguntar: o que é a grande figura

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top