2011-09-27 3 views
2

J'essaie d'appeler l'API text to speech de Python en utilisant win32com.client. L'interpréteur Python est livré avec Splunk et je suis capable de l'invoquer manuellement en utilisant "splunk cmd python".Comment débugger l'intégration de win32 com à partir de Python?

Voici un exemple

from win32com.client import constants 
import win32com.client 
speaker = win32com.client.Dispatch("SAPI.SpVoice") 
speaker.Speak('this is a test') 

Mon code est invoqué par le processus de splunkd (en cours d'exécution en tant qu'utilisateur Windows normal) et je reçois le message d'erreur suivant.

(-2147352567, 'exception a eu lieu.', (0, None, None, None, 0, -2147200925), None)

Je me bats pour résoudre le problème, des suggestions?

La version Python est livré Python 2.6.4 (R264: 75706 7 Fév 2011 14:20:39) [MSC v.1400 64 bits (AMD64)]

Permuté Réponses Splunk http://splunk-base.splunk.com/answers/31181/debugging-custom-search-commands

mise à jour == == J'ai suivi le problème à la procédure de lancer l'interpréteur python. Pour une raison quelconque, le processus perturbe l'environnement de telle sorte que l'interpréteur python se comporte différemment. Je suspecte que l'erreur win32 est en réalité une violation d'accès .

+0

avez-vous essayé 32bit python? mêmes résultats? vous pouvez utiliser ollydbg pour lancer le processus python et voir en fait quelle est l'exception (ollydbg fonctionne uniquement avec les exécutables 32 bits) pour 64bit vous pouvez utiliser windbg (outils de débogage ms) mais il est moins convivial – sherpya

Répondre

0

L'application fonctionne comme prévu lorsqu'elle est lancée en tant qu'utilisateur normal. Le processus parent s'exécute en tant que système, qui ne parvient pas à appeler le TTS.

Questions connexes