



























这是一个创建于 2716 天前的主题,其中的信息可能已经有所发展或是发生改变。
如题,目的是通过 Flask 获取 Word 文件内容,格式可能是 .doc 或者 .docx
在 Flask 内通过 win32com 调用 Word 就会失败,不通过 Flask 就能正常调用。
应该是权限的原因吧? 应该怎么办?
第一次用 Flask,请大神轻拍~
第 1 条附言 · 2019 年 1 月 7 日
代码:
错误信息
File "C:\Python33\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221008, '尚未调用 CoInitialize。', None, None)
127.0.0.1 - - [07/Jan/2019 09:29:56] "GET /DocText/?file=F:\Eclipse%E5%85%B3%E9%94%AE%E5%AD%97.doc HTTP/1.1" 500 -
第 2 条附言 · 2019 年 1 月 7 日
问题已经解决了,在此总结一下
问题的原因是 COM 初始化失败,有两种解决方法:
1、最简洁的方法是 @ysc3839 提供的,在脚本开头添加一下脚本:
import sys
sys.coinit_flags = 0
完整源码:
2、或者在脚本开头添加:
import pythoncom
然后在 COM 调用函数内,添加:
pythoncom.CoInitialize()
完整源码:
再次感谢各位的帮助!
第 3 条附言 · 2019 年 1 月 7 日
上面第二段代码贴错了
在 import pythoncom 后立即调用 pythoncom.CoInitialize() 是不起作用的,还是提示 “尚未调用 CoInitialize ”
应该是这样:
2 cz5424 2019 年 1 月 6 日 via iPhone发一下代码看看,单凭你描述解决不了问题 |
3 ysc3839 2019 年 1 月 7 日“在 Flask 内通过 win32com 调用 Word 就会失败”,起码说一下怎么个失败吧? |
6 JerryV2 2019 年 1 月 7 日错误信息: File "C:\Python33\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch |
7 julyclyde 2019 年 1 月 7 日随便一搜错误信息不就能找到答案么?你这动手能力太差了吧 |
14 JerryV2 2019 年 1 月 7 日在此声明一下,我不是伸手党啊, 确实去 Google 了,但是没想到 COM 初始化的位置还会有影响,等有时间研究一下这背后的区别吧,或者哪位大神愿意解答一下,在此先表示感谢 |
18 ysc3839 2019 年 1 月 7 日试试在文件最开头加上 import sys |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。