Question

J'essaie d'obtenir le exemple et d'autres exemples de code que je trouve pour pyuno fonctionnant avec openoffice 3.1.1 et python 2.5 sans succès.

Malheureusement, pyuno ne donne aucun indice sur ce qui ne va pas.

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

ci-dessous est le résultat de l'exécution de /opt/openoffice.org/basis3.1/program/officehelper.py qui démarre en gros l’instance office sans tête et renvoie un objet contextuel associé.

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 prend seulement 1 argument et doit être une chaîne, comme défini dans http://udk.openoffice.org/source/browse/udk/pyuno/source/module/pyuno_module.cxx?rev=1.14&view=markup Je n’arrivais pas à faire fonctionner pyuno.getClass de toute façon.

des suggestions sur la façon de faire fonctionner pyuno?

Était-ce utile?

La solution

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

OOP a mal tourné, à mon humble avis. Je connais son ergothérapeute, mais j’ai essayé de faire en sorte qu’uno travaille avant et j’ai abandonné. c’est du pur Steve Yegge Prose http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html ).

lorsque vous traduisez ces lignes sous une forme plus explicite, elles se présentent sous la forme suivante:

& "Laisser" local "être le résultat de l'appel de la méthode" obtenir le contexte du composant "de" uno ". Laissez le "gestionnaire de service" l'attribut "gestionnaire de service" de "local". Laisser 'resolver' être le résultat de l'appel de la méthode 'service manager' 'créer une instance avec contexte', en utilisant les arguments 'com sun star bridge un résolveur d'URL' et 'local'. "

omg. il n’est pas surprenant que quelque chose ne va pas avec un programme aussi atrocement sur-spécifique, compliqué et autoréférentiel tout en étant inconscient de soi… vous appelez une sous-méthode de «local» et cette sous-méthode doit être expliquée Que veut dire "local"? Tu peux répéter s'il te plait? chapeau aux développeurs intrépides qui peuvent couper à travers cela. débogage heureux.

ADDED:

thx pour le commentaire et les points.

le problème de pyuno, je ne peux rien y faire en fait, mais j’encourage à poursuivre l’approche patiente en trytrytry avec un délai clair.

Je suggère également de déposer un B.U.G. avec le peuple pyuno (s’ils sont effectivement actifs - j’ai l’impression qu’il s’agissait d’un projet plutôt silencieux) à cause du message d'erreur absurde: la méthode en question semble demander un seul argument de chaîne, et il en obtient un, et il se plaint ça faisait. ce n'est donc pas utile dans la mesure où il devient raisonnable de déclarer une faute de code.

Dans ce genre de situation, je regarde souvent les sources. mais vous l'avez déjà fait, non?

Je déteste demander aux gens de revenir «pourquoi voulez-vous faire cela?» quand je demande de l’aide. Cependant, il arrive parfois que quelqu'un (peut-être vous) trouve dans le processus un autre chemin réalisable, qui n'inclut pas de solution au problème particulier, mais qui aide à résoudre le problème superordonné. alors, si je peux demander: quelle est la grande image?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top