导入错误:找不到名为win32com.client的模块。

109

我目前正在使用Python 2.7,并尝试打开一个Excel表格。当使用以下代码时:

import os
from win32com.client import Dispatch

xlApp = win32com.client.Dispatch("Excel.Application")
xlApp.Visible = True
# Open the file we want in Excel
workbook = xlApp.Workbooks.Open('example.xls')

我遇到了这个错误:

ImportError: No module named win32com.client

由于我使用的是64位Windows机器,是否可能出现这种错误?


5
您好,只是确认一下,您是否安装了这些扩展程序:http://sourceforge.net/projects/pywin32/。它**不是**标准库。 - Dair
3
你的问题已经在这里得到了解答:http://superuser.com/questions/609447/how-to-install-the-win32com-python-library 和 https://dev59.com/QVzUa4cB1Zd3GeqP69Ei。 - Jordy19
3
请注意,即使安装了win32com,上述代码仍会出现错误。第三行必须是xlApp = Dispatch("Excel.Application")。 - ger.s.brett
pip install pywin32 pypiwin32 winshell - ali reza
12个回答

186

pip install pywin32 对我来说没有起作用,但是 pypiwin32 成功了。


12
如果在命令行中找不到pip,可以尝试以下方法: 'python -m pip install pypiwin32' - RoyM
5
这些方法都没有对我起作用。我尝试了pypiwin32和pywin32,但它们都不起作用。 - Tiskolin
16
我遇到了一个错误:无法找到满足 pypiwin32 中要求的 pywin32>=223 版本(可用版本为:)。虽然我使用的是Python 2.7.10,但没有找到匹配的发行版本。有人知道如何解决吗? - MACC
@MACC 我也遇到了同样的问题,但是我运行了两个Python版本,我觉得它们可能会混淆。你最后解决了吗? - daniel9x
请注意,pypiwin32是pywin32的旧版本和过时版本 - Yuya Takashina

31

win32com.clientpywin32的一部分。

因此,请从这里下载pywin32。


pywin32是pypiwin32的依赖项。 - Entree
pip经常无法运行后安装脚本,因此手动安装是解决方案。 - ROJI

23

尝试使用这个命令:

pip install pywin32

注意

如果出现以下错误:

无法找到符合要求 pywin32>=223(来自 pypiwin32)的版本:
没有匹配的发行版可用于 pywin32>=223(来自 pypiwin32)

请使用以下命令升级 'pip':

pip install --upgrade pip

14

我知道这篇文章有点旧,但是我想补充一下,我不得不采取额外的步骤来使它能够工作。

与其只是这样做:

pip install pywin32

我必须使用-m标志才能使其正常工作。如果没有它,我会遇到一个问题,即仍然会出现错误ImportError: No module named win32com

因此,为了解决这个问题,您可以尝试以下方法:

python -m pip install pywin32

这对我有用,并且在几个版本的Python上都起作用,而只是执行pip install pywin32无法工作。

测试的版本:

3.6.2、3.7.6、3.8.0、3.9.0a1。


12

尝试同时运行 pip install pywin32pip install pypiwin32

它能正常工作。


7

你必须安装 pywin32 软件包:

pip install pywin32

安装后,导入win32com.client Python拥有名为pywin32的“Python for Windows Extensions”包,它允许我们轻松地访问Windows组件对象模型(COM)并控制Microsoft应用程序。

5

3

我正在使用Windows系统的64位笔记本电脑上的Visual Studio Code。最终我成功了!首先像平常一样安装pywin32:

python -m pip install pywin32

如果你正在使用Code Runner,你可能需要确保在你的代码中有正确的模块路径。
import sys
sys.path.append("C:\\_path_to_virtual_environment\\Lib\\site-packages\\")

import win32com.client as win32

现在在您的终端窗口中更改目录到您的脚本文件夹并运行此命令:

python pywin32_postinstall.py -install

这将更改您的错误消息,指出您缺少win32api模块。要获取此模块,请安装以下内容:

python -m pip install pypiwin32

我不会说我对所有这些命令的作用有深刻的洞察力,但它(终于)解决了我的问题!


在我的64位Windows和Python 3.11.2上,运行命令“python -m pip install pywin32”成功了。 - user10186832

3

Win32COM是(并且一直都是)PyWin32的一部分。

1. PyWin32

[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) Extensions是一个Python封装的WinAPI
文档(正在进行中)可以在[GitHub.MHammond]: Python for Win32 Extensions Help(或者[ME.TimGolden]: Python for Win32 Extensions Help)找到。

最近,二进制文件(.whl)发布在[PyPI]: pywin32上(从v222开始(自20180121)- 有一些旧记录,但它们不包含任何(有用的)软件包)。
和许多其他软件一样,它以前托管在[SourceForge]: mhammond - Python for Windows Extensions上(二进制文件(.exe)安装程序也在那里发布 - 最后一个是v221(自20170329))。

2. PyPIWin32

只存在于[PyPI]: pypiwin32上。

目前(回答时),只有3个版本:

  1. v219(来自20141203):

    • 包含各种Python版本的.whl文件
  2. v220(来自20170112):

    • 仅包含Python 3.6.whl文件
  3. v223(来自20180226):

    • 仅包含一个没有数据的.whl文件(但有PyWin32作为依赖项)

还请查看Mark Hammond的回答:[GitHub]: mhammond/pywin32 - Add CascadeWindows wrapper (@mhammond's comment)强调是我的):

它存在于pywin32本身支持打包为wheel之前。我认为它现在没有太多的价值,但可能仍然有一些依赖它的东西存在吧?说实话,我甚至不记得是谁创建了它,我猜我们应该问问那个人(但我知道不是我!)
从上面可以得出结论,PyPIWin32只是一个用来测试新引入的.whl打包方案的试验场,现在(也许除了第一个版本)就是垃圾。
因此: 不要安装PyPIWin32(pip install pypiwin32) 只需安装PyWin32即可:python -m pip install pywin32(也可以指定特定的PyWin32版本)。
如果安装后还不能正常工作,那就是其他问题了。 以下是一些可能出现的问题(以及解决方法)、通用建议等链接:

2
在一些情况下,当pywin32不是直接引用而其他库需要安装pywin32-ctypes时,在使用pyinstaller打包应用程序时会导致"ImportError: No module named win32com"的错误。
在Python 3.7 - pyinstaller 3.6上运行以下命令可以解决该问题。
pip install pywin32==227

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接