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 时未定义的符号

无法在python中导入beautifulsoup

ImportError:无法在 django virtualenv 中导入名称 _remove_dead_weakref

无法在macosx中导入pyqt4的子模块

无法在 python 3.6 中导入 cv2 OpenCV 2.4.13