Pycharm:[严重] [App] 无法获取 Window,中止

Pycharm: [CRITICAL] [App ] Unable to get a Window, abort

我对 python 很陌生,尤其是 pycharm IDE。我想学习使用kivy

我尝试使用 pycharm 运行 以下代码段,但出现错误:

import kivy
from kivy.app import App
from kivy.uix.widget import Widget
import pygame

class MyGrid(Widget):
    pass

class MyApp(App):
    def build(self):
        return MyGrid()

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

这是错误:


C:\Users\joaki\AppData\Local\Microsoft\WindowsApps\python3.9.exe C:/Users/joaki/PycharmProjects/pythonProject3/main.py
[INFO   ] [Logger      ] Record log in C:\Users\joaki\.kivy\logs\kivy_21-03-15_15.txt
[INFO   ] [deps        ] Successfully imported "kivy_deps.gstreamer" 0.3.1
[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\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:44:55) [MSC v.1928 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Users\joaki\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe"
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_pil (img_sdl2, img_ffpyplayer ignored)
pygame 2.0.1 (SDL 2.0.14, Python 3.9.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
[INFO   ] [Window      ] Provider: sdl2
[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 cgl_glew: Den angitte modulen ble ikke funnet.
  File "C:\Users\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\core\__init__.py", line 70, in core_select_lib
    cls = cls()
  File "C:\Users\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\core\window\window_sdl2.py", line 152, in __init__
    super(WindowSDL, self).__init__()
  File "C:\Users\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\core\window\__init__.py", line 982, in __init__
    self.create_window()
  File "C:\Users\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\core\window\window_sdl2.py", line 289, in create_window
    self.get_gl_backend_name())
  File "C:\Users\joaki\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kivy\core\window\__init__.py", line 1228, in get_gl_backend_name
    return cgl_get_backend_name(
  File "kivy\graphics\cgl.pyx", line 56, in kivy.graphics.cgl.cgl_get_backend_name
  File "kivy\graphics\cgl.pyx", line 69, in kivy.graphics.cgl.cgl_get_backend_name
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.752.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 565, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1108, in create_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed

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

Process finished with exit code 1

另一方面,当我使用 spyder IDE 时,一切 运行 都是正确的。如果能帮助解决这个问题,我将不胜感激。

现在...看来您可能遇到了 SDL2 依赖性问题。

您升级了 Kivy,python 或 pygame? 尝试一个新的环境(使用 virtualenv 或 venv),全新的 python 和 kivy。 确保所有依赖项都安装成功。

在以前的版本中,kivy 会使用 Pygame 创建 window(不确定是否仍然如此)。但是避免调用“import Kivy”和“import Pygame”可能对你有好处。

仅从中导入您需要的方法。