无法加载 pywin32 库 win32gui
Posted
技术标签:
【中文标题】无法加载 pywin32 库 win32gui【英文标题】:Can't load pywin32 library win32gui 【发布时间】:2010-10-18 02:00:48 【问题描述】:我正在尝试使用 pywin32 中包含的 win32gui 模块,但无法正常工作。
我已经下载并构建了它,并且所有内容似乎都位于 site-packages 下,我在 site-packages/win32/win32gui.pyd 找到了 win32gui.pyd,但是当我尝试导入它时,我得到:
import pyHook, win32gui
ImportError: DLL load failed: The specified module could not be found.
我需要将 dll 移到某个地方吗?如果有,是哪一个?
【问题讨论】:
【参考方案1】:这行得通:
import pywintypes
#import pythoncom # Uncomment this if some other DLL load will fail
import win32gui
【讨论】:
我不认为这正是问题所要求的,但它解决了我的问题。我的系统上安装了 win32gui,但试图用 cx_freeze 打包所有内容。只包括 win32gui 在本地工作,但不能在其他系统上工作——包括 pywintypes 强制 cx_freeze 包括正确的 DLL。 这为我指明了正确的方向;为了让 pywintypes 导入,我必须将我的 virtualenv 中的 dll 从Lib\site-packages\pywin32_system32
复制到 Lib\site-packages\win32\lib
【参考方案2】:
我有同样的问题。我将 pywintypes34.dll 所在的路径添加到系统路径中,并且它起作用了。
在我的例子中是 C:\Python34\Lib\site-packages\pywin32_system32
【讨论】:
【参考方案3】:我的猜测是 win32gui 依赖于一些不在您系统上的 DLL。你可以下载depends 看看你缺少什么。
但是我的第一次尝试是尝试从安装程序安装 pywin32,而不是通过构建它。
【讨论】:
嗯,丢失的 DLL 相当明显:p 只是不确定哪个 :) 取决于解决了这个问题,现在工作正常。感谢您的提示:)【参考方案4】:首先检查您的系统中是否安装了“pywin32”模块。如果没有安装,请先安装它。 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32
如果问题仍然存在,那么现在为 /Lib/site-packages/pywin32_system32 并将此路径添加到系统库或将 pythoncom35.dll 和 pywintypes35.dll 添加到添加到系统路径的目录中。
【讨论】:
You previously posted this exact same answer to another question。请不要对多个问题发布相同的答案。选择最好的问题并在那里发布一个好的答案,然后标记以将其他问题关闭为重复问题。 (我已经处理过这种情况下的重复问题。)如果问题不重复,则必须tailor your answers specifically to each question。【参考方案5】:我尝试只“复制”一次 pywin32 软件包而不是安装它,它运行良好。
我所做的是:
-
将所有相关包复制到 site-packages 文件夹
将 pythoncom25.dll 和 pywintypes25.dll 复制到 c:\windows\system32 文件夹(您可能需要更改为版本和系统路径)
希望对你有帮助
【讨论】:
复制这两个文件有帮助(它们位于 python 安装文件夹中)。【参考方案6】:同样的问题,我从sourceforge 安装,然后以管理员身份运行 .exe。
【讨论】:
【参考方案7】:我想要一个安装了pywin32模块的win32gui模块仍然错误“导入win32gui时DLL加载失败:找不到指定的模块”,我去了我的虚拟环境中的文件夹pywin32_system32文件夹并复制DLL并粘贴到里面win32 文件夹。 为我工作
【讨论】:
以上是关于无法加载 pywin32 库 win32gui的主要内容,如果未能解决你的问题,请参考以下文章
Pywinauto常用02--pywin32(Python调用win api)
pywin32win32apiwin32guiwin32comwin32con 都是啥?
AttributeError:模块'win32ctypes.pywin32.win32api'没有属性'错误'
python pywin32 里面操作窗体,获取窗体里面的数据,在函数GetDlgItem函数中,怎么获取第二个参数的值?