Kivy 2.0.0 , ошибка python 3.9: [КРИТИЧЕСКАЯ] [Окно ] Не удалось найти какого-либо ценного поставщика окон

#python #kivy

Вопрос:

У меня была та же ошибка при запуске любого кода kivy, который я вводил в IntelliJ. Я использую kivy 2.0.0 и Python 3.9. Вот мой код:

 import kivy
kivy.require("2.0.0")
from kivy.app import App
from kivy.uix.button import Button

print(kivy.__version__)

class ButtonApp(App):
    def build(self):
        # use a (r, g, b, a) tuple
        btn = Button(text="Push Me !",
                     font_size="20sp",
                     background_color=(1, 1, 1, 1),
                     color=(1, 1, 1, 1),
                     size=(32, 32),
                     size_hint=(.2, .2),
                     pos=(300, 250))

        btn.bind(on_press=self.callback)
        return btn

    def callback(self, event):
        print("button pressed")
        print('Yoooo !!!!!!!!!!!')

root = ButtonApp()

root.run()
 

Я перепробовал множество решений, включая: переустановку kivy, добавление в path, и я установил все зависимости.
Вот сообщение об ошибке:

 [INFO   ] [Logger      ] Record log in C:UsersJames.kivylogskivy_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:UsersjamesAppDataLocalProgramsPythonPython39libsite-packageskivy__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:UsersjamesIdeaProjectsHelloWorldvenvScriptspython.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:UsersjamesAppDataLocalProgramsPythonPython39libsite-packageskivycore__init__.py", line 58, in core_select_lib
    mod = __import__(name='{2}.{0}.{1}'.format(
  File "C:UsersjamesAppDataLocalProgramsPythonPython39libsite-packageskivycorewindowwindow_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
 

Ответ №1:

Решение этой проблемы заключается в удалении kivy и переустановке новейшей версии с master:

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

Комментарии:

1. Спасибо за вашу помощь, я сделал это в командной строке и без разницы, я также попробовал это в терминале IntelliJ, но без разницы.

2. Странно, но это работает для многих людей, включая меня

3. Я просто помню, что мне нужно было сделать, чтобы это сработало. Попробуйте переустановить Python и выполнить команды, которые я предоставил выше, в cmd/powershell/терминале с разрешением администратора

4. большое вам спасибо, я заставила его работать

5. Ниже приведен код, который я использовал: