【发布时间】:2014-12-31 23:04:15
【问题描述】:
以下代码运行良好,但如果从 CherryPy 应用程序方法执行时会失败,并显示错误消息 CoInitialize has not been called:
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.quit()
This post 提出了一个适合我的解决方案:
import pythoncom
pythoncom.CoInitialize()
我问一个我已经有解决方案的问题的原因是(1)我想知道我在做什么(而不是仅仅因为我已经看到它工作过一次) (2) 我不想冒险错过一些重要的事情(阅读this post 让我觉得我错过了一些东西。)
我找不到pythoncom.CoInitialize() 的任何文档,pythoncom 的来源是以下三行对我没有帮助(Eclipse+pydev 也说该方法不存在):
# Magic utility that "redirects" to pythoncomxx.dll
import pywintypes
pywintypes.__import_pywin32_system_module__("pythoncom", globals())
【问题讨论】:
-
有关 CoInitialize 和其他 COM 功能的文档请参阅 MSDN
标签: python python-3.x cherrypy win32com