You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Python使用ctypes加载EGL.dll失败的问题求助

加载EGL.dll时出现FileNotFoundError的排查方案

问题描述

在Windows环境下使用Python的ctypes库加载C:\Windows\System32\EGL.dll,确认文件已存在于指定路径,但运行代码时仍抛出错误:

FileNotFoundError: Could not find module 'C:\Windows\System32\EGL.dll' (or one of its dependencies). Try using the full path with constructor syntax.

核心代码片段如下:

from ctypes import CDLL
from _ctypes import LoadLibrary

# 自定义DLL加载函数
def load_dll(path: str) -> CDLL:
    if path == "" or path is None:
        raise TypeError("Please provide a valid path")
    handle = LoadLibrary(path)
    return CDLL(name=path, handle=handle) if handle != 0 else handle

# 指定DLL路径并加载
dll_path = r"C:\Windows\System32\EGL.dll"
load_dll(dll_path)

完整代码可参考用户提供的TokenHMR演示脚本。

已尝试操作

  • 通过自定义函数调用_ctypes.LoadLibrary,传入完整路径加载DLL后创建CDLL实例

预期与实际结果

  • 预期:路径正确,EGL.dll应成功加载
  • 实际:触发FileNotFoundError,提示模块或其依赖项未找到

错误原因

  1. Windows文件系统重定向:若使用32位Python,系统会自动将C:\Windows\System32的访问请求重定向到C:\Windows\SysWOW64,若EGL.dll未放置在该目录或版本不匹配,会导致加载失败。
  2. 依赖库缺失:EGL.dll依赖其他动态链接库(如libGLESv2.dll等),这些依赖文件未在系统路径或Python可访问目录中存在。
  3. 架构不兼容:下载的EGL.dll版本(32/64位)与Python或系统架构不匹配。

解决方法

1. 匹配Python与DLL的架构

  • 验证Python架构:在命令行执行python --version,查看输出是否标注(32-bit)或(64-bit)。
  • 32位Python:将EGL.dll及其依赖库复制到C:\Windows\SysWOW64;64位Python:确保EGL.dll为64位版本并放在C:\Windows\System32。

2. 补充缺失的依赖库

  • 使用Dependency Walker工具打开EGL.dll,查看所有依赖项,将缺失的库文件复制到系统目录(System32或SysWOW64)或Python脚本所在目录,注意依赖库的架构必须与EGL.dll一致。

3. 将DLL放在脚本目录

  • 把EGL.dll和它的所有依赖库复制到Python脚本所在文件夹,修改代码中的路径为相对路径:
dll_path = r"EGL.dll"

这种方式可以绕过系统目录的重定向限制,同时确保依赖库能被正确加载。

4. 禁用文件系统重定向(仅32位Python)

如果必须使用32位Python并加载System32中的64位DLL,可通过ctypes临时禁用重定向:

import ctypes

kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
# 禁用重定向
old_value = ctypes.c_void_p()
kernel32.Wow64DisableWow64FsRedirection(ctypes.byref(old_value))
# 加载DLL
load_dll(r"C:\Windows\System32\EGL.dll")
# 恢复重定向
kernel32.Wow64RevertWow64FsRedirection(old_value)

注意:该操作可能影响其他系统调用,仅在必要时使用。


内容的提问来源于stack exchange,提问作者Aditya Kumar Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:44:49