在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
答案 0 :(得分:2)
这看起来非常类似于32位/ 64位问题。如果您正在运行64位Python并且您拥有32位PythonWin,您将会看到这种情况。 win32gui
和win32ui
都是.pyd
个文件(DLL),它们应分别位于Lib\site-packages\win32
和Lib\site-packages\pythonwin
。
如果你可以在那里看到它们,但导入失败则可能是错误的位数。 64位可执行文件无法加载32位DLL,反之亦然,如果您尝试,在大多数情况下,错误消息将告诉您您尝试加载的DLL不存在。即使你可以看到它是。
编辑以下与OP交换评论:
如果您将多个导入放在一行中,您也会在PythonWin中遇到此类错误。按照PEP-8进行一次导入。
答案 1 :(得分:0)
from win32.win32gui import FindWindow, GetWindowRect, MoveWindow
我猜标准型号为win32,因此网上所有教程都已过时。对于v300之前所说的内容,请添加“ win32”。在模型名称之前添加一个父模型名称,即“ win32”