Python'没有名为win32gui的模块'安装pywin32后

时间:2017-05-19 06:54:03

标签: python module pip pywin32 win32gui

在Windows 8上运行python 3.6。

ModuleNotFoundError: No module named 'win32gui'

我已经尝试了多次pywin32安装,但到目前为止还没有。 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/安装没有问题,但问题已经说明了。 与pip安装相同:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

在我的Python根目录中,site-packages文件夹中现在有多个pywin32 / win32变体。 pywin32.pth不包含win32gui,但只包含以下内容:

# .pth file for the PyWin32 extensions win32 win32\lib Pythonwin

我可以作为最后的手段切换到另一个GUI工具包,但是因为我使用了一些开源代码,这意味着我必须重写大量代码,这就是为什么它是最后的手段。

更新: 更改导入行:

import win32gui, win32ui, win32con, win32api

要:

from win32 import win32gui, win32ui, win32con, win32api

将错误推送到:

ImportError: cannot import name 'win32ui'

解决方案更新:

from win32 import win32gui
import win32ui, win32con, win32api

2 个答案:

答案 0 :(得分:2)

这看起来非常类似于32位/ 64位问题。如果您正在运行64位Python并且您拥有32位PythonWin,您将会看到这种情况。 win32guiwin32ui都是.pyd个文件(DLL),它们应分别位于Lib\site-packages\win32Lib\site-packages\pythonwin

如果你可以在那里看到它们,但导入失败则可能是错误的位数。 64位可执行文件无法加载32位DLL,反之亦然,如果您尝试,在大多数情况下,错误消息将告诉您您尝试加载的DLL不存在。即使你可以看到它是。

编辑以下与OP交换评论:

如果您将多个导入放在一行中,您也会在PythonWin中遇到此类错误。按照PEP-8进行一次导入。

答案 1 :(得分:0)

from win32.win32gui import FindWindow, GetWindowRect, MoveWindow

我猜标准型号为win32,因此网上所有教程都已过时。对于v300之前所说的内容,请添加“ win32”。在模型名称之前添加一个父模型名称,即“ win32”