win32com.client.Versand + Cherrypy = CoInitialize wurde nicht aufgerufen

Der folgende code funktioniert gut, aber es scheitert, wenn ausgeführt, eine CherryPy app Methode mit der Fehlermeldung CoInitialize has not been called:

import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.quit()

Dieser Beitrag schlägt vor, eine Lösung, die funktioniert für mich:

import pythoncom
pythoncom.CoInitialize()

Der Grund, warum ich ' m Fragen, ein problem, für das ich bereits eine Lösung haben, ist, dass (1) ich würde gerne wissen, was ich Tue (eher als es zu tun nur, weil ich gesehen habe das es funktioniert einmal) und (2) ich möchte nicht riskieren etwas zu verpassen wichtig (und Lesen dieser Beitrag lässt mich denken, dass mir etwas fehlt.)

Konnte ich nicht finden, keine Dokumentation für pythoncom.CoInitialize(), und die Quelle der pythoncom ist die folgenden drei Zeilen, die nicht helfen, mich (noch Eclipse+pydev, die sagt, dass die Methode nicht existiert):

# Magic utility that "redirects" to pythoncomxx.dll
import pywintypes
pywintypes.__import_pywin32_system_module__("pythoncom", globals())
  • Für Dokumente, die auf CoInitialize und anderen COM-Funktionen finden Sie im MSDN
InformationsquelleAutor stenci | 2014-11-04
Schreibe einen Kommentar