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”可能对你有好处。
仅从中导入您需要的方法。
我对 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”可能对你有好处。
仅从中导入您需要的方法。