You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SDL2导入错误与Kivy窗口创建失败问题求助(Python3.6.4/Win10)

解决Kivy运行时SDL2 DLL加载失败的问题

先把你遇到的问题和环境信息整理出来,方便定位问题:

错误信息

sdl2 - ImportError: DLL load failed: 找不到指定的模块
[CRITICAL] [App] 无法获取窗口,程序中止

环境信息

  • Python: 3.6.4
  • OS: Windows 10
  • Kivy: 1.10.0

已执行的安装步骤

python -m pip install --upgrade pip wheel setuptools
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy.deps.gstreamer
python -m pip install kivy.deps.angle
python -m pip install kivy
python -m pip install kivy_examples
python -m pip install Pillow
python -m pip install cython
python -m pip install PyEnchant

这个SDL2 DLL加载失败的问题在Windows上装Kivy时挺常见的,大多是依赖库路径没配置对或者安装文件损坏,给你几个针对性的解决方法:

1. 强制重新安装Kivy的SDL2相关依赖

有时候依赖包安装过程中会出现文件缺失或损坏,强制重装能修复这个问题:

python -m pip install --force-reinstall kivy.deps.sdl2 kivy.deps.glew kivy.deps.angle

执行完之后,重启你的命令行或IDE再尝试运行示例。

2. 手动把依赖DLL路径添加到系统PATH

Windows可能找不到Kivy依赖的DLL文件,需要把这些DLL所在目录加到系统环境变量PATH里:

  • 找到你的Python安装目录下的Lib\site-packages\kivy_deps文件夹,里面有sdl2\binangle\binglew\bin这几个目录
  • 复制这三个路径,右键「此电脑」→属性→高级系统设置→环境变量→在系统变量里找到PATH,点击编辑添加这三个路径
  • 添完之后重启电脑或命令行工具,确保环境变量生效

3. 检查Python与依赖的位数匹配

要保证你的Python版本(32位/64位)和安装的Kivy及依赖包位数一致:

  • 打开命令行输入python --version,如果显示Python 3.6.4 (AMD64)就是64位,否则是32位
  • 如果之前装的依赖和Python位数不匹配,先卸载所有Kivy相关包再重装对应版本:
    python -m pip uninstall -y kivy kivy_examples kivy.deps.sdl2 kivy.deps.glew kivy.deps.angle kivy.deps.gstreamer
    # 重新安装对应位数的依赖和Kivy
    python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer kivy.deps.angle kivy kivy_examples
    

4. 用官方Kivy安装器替代pip安装

如果上面的方法都不行,可以试试Kivy官方的Windows安装器,它会自动配置所有依赖和环境变量,不用手动折腾。找对应Python3.6版本的安装包,跟着向导走就行。

5. 正确运行Kivy示例

确保在激活的Python环境里用命令行运行示例,比如:

python -m kivy.examples.demo.touchtracer

别直接双击示例的.py文件,这样可能因为环境变量没加载导致找不到DLL。

按上面的步骤逐一试,应该能解决你遇到的问题。

内容的提问来源于stack exchange,提问作者Jaimie Dodd

火山引擎 最新活动