跳转到主要内容

纯Python COM包

项目描述

comtypes

Works on Windows only
PyPI version PyPI - Python Version PyPI - License PyPI - Downloads
GitHub Repo stars GitHub forks
Tidelift Subscription

comtypes 是一个轻量级的纯Python COM 包,基于 ctypes 外部函数接口库。

comtypes 允许您在纯Python中定义、调用和实现基于COM接口的自定义和派生的接口。

comtypes 需要 Windows 和 Python 3.8 或更高版本。

  • 版本 1.4.6 是最后一个支持 Python 3.7 的版本。
  • 版本 1.2.1 是最后一个支持 Python 2.7 和 3.3–3.6 的版本。
  • comtypes 在 Python 3.8.1 中无法正常工作,如 GH-202 中所述。该错误已在 Python >= 3.8.2 中修复。
  • 某些 comtypes 函数在 Python 3.8 和 3.9 中可能无法正常工作,如 GH-212 中所述。该错误已在 Python >= 3.10.10 和 >= 3.11.2 中修复。

安装

comtypes 可在 PyPI 上找到,并且可以使用 pip 进行安装

# PyPI
pip install comtypes

源代码目前托管在 此处 的 GitHub 上。

依赖项

comtypes 是一个纯Python包 — 它没有其他必需的依赖项。

可以通过安装

  • numpy 来启用可选功能,以便将数组作为 numpyndarray 处理。
  • mypy 或其他静态类型检查器,以解释类型提示。

然而,这些包中的任何一个都不是运行 comtypes 所必需的。

社区

GitHub 存储库 用于跟踪问题、报告错误以及为代码库和文档做出贡献。

对于企业

作为 Tidelift 订阅的一部分提供。

该项目以及成千上万个其他包的维护者正在与 Tidelift 合作,提供一项企业订阅,该订阅涵盖了您使用的所有开源软件。

了解更多信息.

常见问题解答

Q: 为什么这个包不支持除Windows之外的平台?

A: Microsoft Component Object Model (COM) 是一种仅在 Windows 上独特的技术,不支持其他平台。

MS 文档中的“COM 是平台无关的”这句话 意味着 COM 在不同的 Windows 版本之间保持兼容性,并不表示它在 Linux 或 Mac 上得到支持。

只要 COM 在 Windows 之外不受支持,就没有计划将 comtypes 移植到其他平台。

Q: 为什么在除Windows之外的平台使用此包时会出现 cannot import name 'COMError' from '_ctypes' 错误?

A: _ctypes 是标准库 ctypes 的内部实现的一部分,该标准库存在于所有平台的 Python 中。然而,COMError 和与 COM 相关的功能仅在 Windows 的 Python 中实现。

在跨平台软件开发中,必须注意确保依赖于 comtypes 的代码库不要在除 Windows 之外的环境中执行。

问:尽管一个依赖于 comtypes 的脚本之前运行成功过,但现在抛出了错误(ImportErrorNameErrorSyntaxError),并且错误反复出现。

答:执行 py -m comtypes.clear_cache 然后再次运行脚本可能会解决问题。

当调用 comtypes.client.GetModule(无论是直接还是间接)时,comtypes 会生成 Python 模块文件。
如果 Python 在文件生成过程中被强制终止或崩溃,写入文件中的代码库将是不完整的。
当 Python 尝试导入这个不可执行的代码库模块时,将发生错误。

执行 py -m comtypes.clear_cache 会识别存储“缓存模块文件”的目录并删除它们。
删除这些不完整的模块并再次运行脚本后,comtypes.client.GetModule 被调用,并重新生成可执行模块。

然而,如果脚本实现没有使用 comtypes.client.GetModule 或处理生成的文件,这可能不是解决方案。

文档

文档目前托管在 PythonHosted 的这里

项目详情


下载文件

下载适用于您平台的项目文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

comtypes-1.4.7.zip (250.5 kB 查看哈希值

上传时间

构建分布

comtypes-1.4.7-py3-none-any.whl (226.8 kB 查看哈希值

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面