Python 'No module named win32gui' 安装pywin32后

Python 'No module named win32gui' after installing pywin32

运行 python 3.6 在 windows 8.

ModuleNotFoundError: No module named 'win32gui'

我已尝试多次安装 pywin32,但 none 到目前为止都有效。 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/ 顺利完成安装,但问题令人信服。 与 pip 安装相同:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

在我的 Python 根目录中,站点包文件夹中现在有多个 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

这看起来很像 32-bit/64-bit 的问题。如果你是 运行 64 位 Python 并且你有 32 位 PythonWin 你会看到这样的事情。 win32guiwin32ui 都是 .pyd 文件(DLL),它们应该分别位于 Lib\site-packages\win32Lib\site-packages\pythonwin 中。

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

在与 OP 交换意见后进行编辑:

如果将多个导入放在一行中,PythonWin 也会出现此类错误。按照 PEP-8 做一个 import 到一行。

from win32.win32gui import FindWindow, GetWindowRect, MoveWindow

我猜标准型号名称是win32,所以网上的教程都过时了。对于 v300 之前所说的任何内容,请添加“win32”。在模型名称之前给出一个父模型名称,即“win32”