首页 > 解决方案 > 如何解决 kivy 中的“无法获取窗口”错误?

问题描述

我正在学习kivy。kivy 的错误让我非常失望。我访问了每个 github 和堆栈溢出页面,包括 kivy.readthedocs.io 并遵守了每一个建议....

我有的:

kivy 1.11.1(不知何故设法从非官方二进制网站安装它),python 3.9.1,pycharm community version-latest,

我的代码:

import kivy
kivy.require('1.9.1')
from kivy.properties import NumericProperty
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.slider import Slider
from kivy.uix.gridlayout import GridLayout

class WidgetContainer(GridLayout):
    def __init__(self,**kwargs):
        super(WidgetContainer,self).__init__(**kwargs)
        self.cols=4
        self.add_widget(Label(text="volume"))
        self.volumeControl=Slider(max=100,min=0)
        self.add_widget(self.volumeControl)
        self.volumeValue=Label(text="0")
        self.add_widget(self.volumeValue)
        self.volumeControl.bind(value=self.on_press)
    def on_press(self,instance,volume):
        self.volumeValue.text=str(volume)
class SliderThingy(App):
    def build(self):
        widgets=WidgetContainer()
        return widgets
root=SliderThingy()
root.run()

输出:

[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "C:\Users\USER\AppData\Roaming\Python\Python39\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Program Files\Python39\python.exe"
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
sdl2 - ImportError: DLL load failed while importing _window_sdl2: The specified module could not be found.
  File "C:\Users\USER\AppData\Roaming\Python\Python39\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    mod = __import__(name='{2}.{0}.{1}'.format(
  File "C:\Users\USER\AppData\Roaming\Python\Python39\site-packages\kivy\core\window\window_sdl2.py", line 27, in <module>
    from kivy.core.window._window_sdl2 import _WindowSDL2Storage

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

Process finished with exit code 1

我试过的:

从 pycharm 安装包,从 venv 安装包,从 venv 运行我的代码。

所有这些不断给我同样的错误......

一个有效的答案将不胜感激

标签: pythonkivy

解决方案


推荐阅读