python - 运行使用 pyinstaller 创建的 exe 时如何使“Kivy”用户界面持续存在
问题描述
尝试使用 pyinstaller 创建一个简单的 exe 文件,然后我可以将其分发给其他用户。python代码使用kivy创建前端。但是,当我运行 exe(使用 pyinstaller --onefile 创建)时,命令窗口和 kivy 窗口会立即关闭。我想让用户界面持续存在,直到用户关闭它。
我正在使用 Python 3.7
下面是简单的kivy代码
import kivy
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
当我通过命令提示符运行 exe 时,我得到以下信息
[WARNING] [Image ] Unable to load image <C:\Users\aa\AppData\Local\Temp\_MEI280362\kivy_install\data\glsl\default.png>
[CRITICAL] [Window ] Unable to find any valuable Window provider.
sdl2 - Exception: SDL2: Unable to load image
File "site-packages\kivy\core\__init__.py", line 67, in core_select_lib
File "site-packages\kivy\core\window\window_sdl2.py", line 140, in __init__
File "site-packages\kivy\core\window\__init__.py", line 968, in __init__
File "site-packages\kivy\core\window\window_sdl2.py", line 294, in create_window
File "site-packages\kivy\core\window\__init__.py", line 1216, in create_window
File "kivy\graphics\instructions.pyx", line 759, in kivy.graphics.instructions.RenderContext.__init__
File "site-packages\kivy\core\image\__init__.py", line 536, in __init__
File "site-packages\kivy\core\image\__init__.py", line 732, in _set_filename
File "site-packages\kivy\core\image\__init__.py", line 435, in load
File "site-packages\kivy\core\image\__init__.py", line 201, in __init__
File "site-packages\kivy\core\image\img_sdl2.py", line 41, in load
[CRITICAL] [App ] Unable to get a Window, abort.
解决方案
推荐阅读
- git - 将 GitHub 链接到项目
- azure-active-directory - Graph Beta RiskDetection API 对“小于”$filter 与“$top”组合的查询失败
- python - 可以将迭代器/生成器视为流吗?
- r - 如何根据时间序列数据在 R 中创建网络列表
- swiftui - SwiftUI:列表刷新向上滚动
- spring - Spring boot 中编写应用程序的方法之间的差异
- php - 我无法在云端获取签名的 url,出现致命错误,我正在尝试的代码如下
- postgresql - 根据确切日期重新计算日期差异
- python - 是否可以使用循环将多个变量分配给python中的不同值
- azure-devops - 如何从 azure devops 管道引用父文件夹?