Как сделать так, чтобы пользовательский интерфейс Kivy сохранялся при запуске исполняемого файла, созданного с помощью pyinstaller - PullRequest
0 голосов
/ 21 декабря 2018

Попытка создать простой exe-файл с помощью pyinstaller, который я затем смогу распространить среди других пользователей.код 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.
...