我最近设法让 pysdl2 (0.9.3) 在 Windows 8.1(64 位)机器上运行(以及扩展模块 gfx、mixer、ttf 和 image)。一切正常,包括 pysdl2 的示例文件夹中的所有演示。
但是,当我尝试在 Windows 7(64 位)上使用相同的 SDL2 DLL 版本运行相同的代码时,我收到错误消息:
sdl2.ext.common.SDLrror: 'directx not available'
打电话后
sdl2.ext.init()
我尝试安装 Directx 最终用户运行时(2010 年 6 月)甚至完整的 SDK,但无济于事。我还尝试将 SDL_VIDEODRIVER 环境变量更改为 directx 以外的其他变量,但这也不起作用(显然,'windib' 在 SDL2 中不再作为选项可用)。
我知道 SDL2 可能正在寻找 Directx 9,它现在已完全被 Directx 11 取代,但在安装最终用户运行时后,我的系统应该再次拥有 Directx 9。此外,如果这是问题的原因,那么它也不应该在 Windows 8.1 上运行,因为这个操作系统更新,更不可能携带 DX9?
编辑:在旁注中,pygame(使用较旧的 SDL 1.2 库)能够找到 directx 作为
pygame.display.get_driver()
输出:
'directx'
所以 SDL2 库的内部配置肯定有问题。