Kivy错误(Python 2.7):sdl2导入错误

4
我正在尝试在我的Python 2.7项目中使用kivy(在PyCharm - Windows 10环境下),但是我遇到了以下错误。如果有人能帮助我吗?谢谢!PS:我尝试了很多次卸载/重新安装库等,并按照像这篇文章中建议的那样做,但不起作用:Kivy not working (Error: Unable to find any valuable Window provider.)
[INFO   ] [Logger      ] Record log in C:\Users\cyril\.kivy\logs\kivy_18-03-25_0.txt
 C:\Users\cyril\venv\lib\site-packages\kivy\modules\__init__.py:128: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
   if path not in sys.path:
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: Le module sp�cifi� est introuvable.
  File "C:\Users\cyril\venv\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Users\cyril\venv\lib\site-packages\kivy\core\window\window_sdl2.py", line 26, in <module>
    from kivy.core.window._window_sdl2 import _WindowSDL2Storage

[CRITICAL] [App         ] Unable to get a Window, abort.

Process finished with exit code 1

错误信息完整吗?第一个错误信息(第59行的那个)应该有一个开括号和可能还需要更多的内容。 - Arndt Jonasson
我编辑了帖子并附上了完整的错误信息。 - user9545017
7个回答

6

问题

它正在寻找你的虚拟环境中的Kivy依赖项(例如sdl2)。

解决方案

我也遇到了同样的问题。我按照以下步骤解决了这个问题。

环境

  • Windows 10
  • PyCharm Community
  • Python 3.5
  • 已安装Kivy依赖项 (docutils, pygments, pypiwin32, kivy.deps.sdl2, kivy.deps.glew, kivy.deps.gstreamer),对于Python 3.5+ (kivy.deps.angle)

PyCharm IDE

  1. 打开项目
  2. 点击 文件
  3. 点击 设置...
  4. 点击 项目解释器
  5. 在右侧面板上,点击 项目解释器下拉列表
  6. 选择Python解释器安装的位置,例如 C:\Users\user-name\AppData\Local\Programs\Python\Python35\python.exe
  7. 一路点击 确定 直到退出 设置 窗口
  8. 运行你的程序

输出结果

Img01 - SDL2 Error Img02 - Python Interpreter Settings Before Change Img03 - Python Interpreter Settings Changed Img04 - Run Kivy App Img05 - SDL2


3

如果您没有安装所有依赖项,则会出现错误。请使用PyCharm终端而不是项目解释器,然后安装以下内容:

1.python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*

  1. python -m pip install kivy_deps.gstreamer==0.1.*

  2. python -m pip install kivy_deps.angle==0.1.*

  3. python -m pip install kivy==1.11.1


1

检查了所有内容,重新安装等,仍然没有运气,但是在使用-d(调试)选项后,错误消息扩展并建议路径中可能存在另一个sdl2.dll。经过一些试错,我在windows \ system32中找到了一个。将其移开使错误消失。


1
我尝试在虚拟环境中运行该应用程序,它可以正常工作。

1

实际上,使用虚拟环境。Kivy的文档也强烈推荐这样做。

重复这个步骤总是会给我一个可运行的Kivy示例。 首先卸载您已安装的所有与Kivy相关的库。

python -m pip uninstall -y kivy.deps.glew kivy.deps.gstreamer kivy.deps.sdl2 kivy.deps.angle

升级 pip、wheel、setuptools 和 setuptools

python -m pip install --upgrade pip wheel setuptools virtualenv

在您的项目文件夹中创建一个虚拟环境并激活它。
python -m virtualenv venv
venv\Scripts\activate 

在bash中,将"source"放在前面。

将kivy的依赖项安装到您的虚拟环境中。

python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* 

如果您想要视频和音频支持:

python -m pip install kivy_deps.gstreamer==0.1.*

在Python 3.5及以上版本中,您可以选择使用Angle而不是Glew,因此请进行选择:
python -m pip install kivy_deps.glew==0.1.*
python -m pip install kivy_deps.angle==0.1.*

安装kivy。
python -m pip install kivy==1.11.1 kivy_examples==1.11.1

之后执行:
python venv\share\kivy-examples\demo\showcase\main.py

来源:https://kivy.org/doc/stable/installation/installation-windows.html

如果出现"[CRITICAL] [App] Unable to get a Window, abort."错误, 请尝试以下命令:

set USE_SDL2=1
set USE_GSTREAMER=1

终端:

export USE_SDL2=1
export USE_GSTREAMER=1

0

不要在你的IDE中运行,尝试通过cmd或powershell运行程序,使用python <filename>。这对我有效。


0

真是不可思议,我在win10上尝试了所有的方法,使用3.7 64位版本,但仍然出现相同的异常...这个东西就是不工作,我想我只能尝试Beeware了。令人失望。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接