ImportError:无法在 python 中导入名称 COMError
Posted
技术标签:
【中文标题】ImportError:无法在 python 中导入名称 COMError【英文标题】:ImportError: cannot import name COMError in python 【发布时间】:2016-09-06 18:59:24 【问题描述】:我正在尝试使用以下代码将 docx 文件转换为 pdf
import sys
import os
import comtypes.client
wdFormatPDF = 17
in_file = os.path.abspath(sys.argv[1])
out_file = os.path.abspath(sys.argv[2])
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
报错了
ImportError: cannot import name COMError
我已经安装了 comtypes 包。
我对python很陌生,我不知道如何解决这个问题。
[编辑]
堆栈跟踪
Traceback (most recent call last):
File "converttopdf.py", line 3, in <module>
import comtypes.client
File "/usr/local/lib/python2.7/dist-packages/comtypes-1.1.2-py2.7.egg/comtypes/__init__.py", line 23, in <module>
from _ctypes import COMError
ImportError: cannot import name COMError
【问题讨论】:
而不是import comtypes.client
尝试import comtypes
。 comtypes.client 只导入客户端包。 COMError 可能在其他地方
@Craicerjack 仍然遇到同样的错误
你是如何安装comtypes的?
下载comtypes-1.1.2
然后python setup.py install
你的操作系统是什么? COMtypes 仅适用于 Windows。
【参考方案1】:
不幸的是,COMTypes 是为 Windows 设计的,而不是 Linux。
comtypes 允许在纯 Python 中定义、调用和实现自定义和基于调度的 COM 接口。它适用于 Windows、64 位 Windows 和 Windows CE。
Source
您需要找到另一种方法来进行转换,可能是通过另一个库。
【讨论】:
以上是关于ImportError:无法在 python 中导入名称 COMError的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法在 IPython 中导入名称“SparkContext”
ImportError:在 python 中导入 swigged c++-class 时未定义的符号
ImportError:无法在 django virtualenv 中导入名称 _remove_dead_weakref