Error when running any kivy code: Kivy 2.0.0 , python 3.9 error: [CRITICAL] [Window ] Unable to find any valuable Window provider

Error when running any kivy code: Kivy 2.0.0 , python 3.9 error: [CRITICAL] [Window ] Unable to find any valuable Window provider

我一直遇到同样的错误 运行 我在 IntelliJ 中输入任何 kivy 代码。我正在使用 kivy 2.0.0 和 Python 3.9。 这是我的代码:

from kivy.app import App
from kivy.lang import Builder

kv = """
Screen:
    FloatLayout:
        Button:
            text: "It works!"
            pos_hint: {"x": 0.1, "y": 0.7}
            text_size: self.size
        """


class MyApp(App):
    def build(self):
        self.screen = Builder.load_string(kv)
        return self.screen


if __name__ == "__main__":
    MyApp().run()

我尝试了很多解决方案,包括重新安装 kivy、添加到路径,并且我已经安装了所有依赖项。 这是错误消息:

[INFO   ] [Logger      ] Record log in C:\Users\James\.kivy\logs\kivy_21-10-25_21.txt
[INFO   ] [deps        ] Successfully imported "kivy_deps.gstreamer" 0.3.2
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.3.1
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "C:\Users\james\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Users\james\IdeaProjects\HelloWorld\venv\Scripts\python.exe"
[INFO   ] [Logger      ] Purge log fired. Analysing...
[INFO   ] [Logger      ] Purge 9 log files
[INFO   ] [Logger      ] Purge finished!
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_pil (img_sdl2, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pil(['text_sdl2'] ignored)
2.0.0
[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\james\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\core\__init__.py", line 58, in core_select_lib
    mod = __import__(name='{2}.{0}.{1}'.format(
  File "C:\Users\james\AppData\Local\Programs\Python\Python39\lib\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

编辑 所以感谢 Weebify 我通过了。只需严格按照 kivy 文档中的所有下载说明进行操作即可。我发布了我用作答案的完整方法(未标记为最佳答案)。

这个问题的解决方法是卸载kivy然后重新安装master的新锐版本:

python3 -m pip uninstall kivy
python3 -m pip install "kivy[base] @ https://github.com/kivy/kivy/archive/master.zip"

好的,非常感谢 Weebify 的帮助。以下是 Windows 的完整下载说明,适用于遇到问题的任何人:

注意:Kivy 尚不支持 Python 3.10,但您可以通过 Python 3.9

顺利通过

设置终端和pip

在安装Kivy之前,Python和pip需要pre-installed。然后,启动一个具有 Python 可用的新终端。在终端中,更新 pip 和其他安装依赖项,以便您拥有最新版本,如下所示,(对于 linux 用户,您可能需要用 python3 代替 python 和还要在虚拟环境外的后续命令中添加 --user 标志):

python -m pip install --upgrade pip setuptools virtualenv

创建虚拟环境

  1. 为您的 Kivy 项目创建一个新的虚拟环境。一个虚拟的 环境将防止与其他可能的安装冲突 Python 版本和包。它是可选的但强烈 推荐:

在当前目录中创建名为 kivy_venv 的虚拟环境:

python -m virtualenv kivy_venv
  1. 激活虚拟环境。您必须从 每次启动新终端时的当前目录。这台 升级环境,以便使用新的 kivy_venv Python。

对于Windows默认CMD,在命令行执行:

kivy_venv\Scripts\activate

如果您在 Windows 上的 bash 终端中,请改为:

source kivy_venv/Scripts/activate

如果您在 Linux,请改为:

source kivy_venv/bin/activate

您的终端现在应该在路径前加上类似 (kivy_venv) 的内容,表示 kivy_venv 环境处于活动状态。如果它不说,虚拟环境没有激活,下面的就不行了。


安装 Kivy

最后,使用最新的 cutting-edge Kivy 安装 Kivy 来自大师:

python -m pip install "kivy[base] @ https://github.com/kivy/kivy/archive/master.zip"

有关 Kivy installation page.

的更多信息