2016-06-28 1 views
0

Ich versuche, meine Kivy Projekt mit Pyinstaller zu verpacken, aber es stürzt ab und spuckt das ausKivy App stürzt ab, nachdem aufgrund Fenster Problem mit pyinstaller verpackt

[CRITICAL   ] [Window  ] Unable to find any valuable Window  provider at all! 
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 138, in __init__ 
File "site-packages\kivy\core\window\__init__.py", line 722, in __init__ 
File "site-packages\kivy\core\window\window_sdl2.py", line 255, in 
create_window 

File "site-packages\kivy\core\window\__init__.py", line 897, in create_window 
File "kivy\graphics\instructions.pyx", line 756, in  
kivy.graphics.instructions.RenderContext.__init__ (kivy\graphics\instructions.c:10729) 
File "site-packages\kivy\core\image\__init__.py", line 512, in __init__ 
File "site-packages\kivy\core\image\__init__.py", line 700, in _set_filename 
File "site-packages\kivy\core\image\__init__.py", line 430, in load 
File "site-packages\kivy\core\image\__init__.py", line 198, in __init__ 
File "site-packages\kivy\core\image\img_sdl2.py", line 42, in load 

[INFO    ] [Audio  ] Providers: audio_sdl2 (audio_ffpyplayer ignored) 
[CRITICAL   ] [App   ] Unable to get a Window, abort. 
Exception ignored in: 'kivy.properties.dpi2px' 
Traceback (most recent call last): 
File "site-packages\kivy\utils.py", line 513, in __get__ 
File "site-packages\kivy\metrics.py", line 175, in dpi 
File "site-packages\kivy\base.py", line 126, in ensure_window 
SystemExit: 1 
[CRITICAL   ] [App   ] Unable to get a Window, abort. 
Exception ignored in: 'kivy.properties.dpi2px' 
Traceback (most recent call last): 
File "site-packages\kivy\utils.py", line 513, in __get__ 
File "site-packages\kivy\metrics.py", line 175, in dpi 
File "site-packages\kivy\base.py", line 126, in ensure_window 
SystemExit: 1 
[CRITICAL   ] [App   ] Unable to get a Window, abort. 

ich nicht meine eigene Spec-Datei erstellen Ich wählte um es über die Befehlszeile zu tun, indem die erforderlichen Argumente irgendwelche Vorschläge übergeben?

Dies ist die Spec-Datei erzeugt durch pyinstaller

# -*- mode: python -*- 

block_cipher = None 


a = Analysis(['apv.py'], 
     pathex=['C:\\Python34\\Lib\\site-packages\\kivy', 'C:\\Python34', 'C:\\Python34\\Lib', 'C:\\Python34\\Lib\\site-packages', 'C:\\Users\\suroh\\Desktop\\my-python-modules', 'C:\\Python34\\Lib\\site-packages\\kivy\\deps', 'C:\\Python34\\Lib\\site-packages\\kivy\\graphic', 'C:\\Python34\\DLLs', 'C:\\Python34\\libs', 'C:\\Python34\\Scripts', 'C:\\Python34\\share\\sdl2\\bin', 'C:\\Python34\\share\\glew\\bin', 'C:\\Python34\\share', 'C:\\Python34\\Tools', 'C:\\Python34\\Lib\\ctypes', 'C:\\Python34\\Lib\\distutils', 'C:\\Users\\suroh\\Desktop\\Python Projects\\testp\\Beta 01'], 
     binaries=None, 
     datas=None, 
     hiddenimports=[], 
     hookspath=[], 
     runtime_hooks=[], 
     excludes=['pygame'], 
     win_no_prefer_redirects=False, 
     win_private_assemblies=False, 
     cipher=block_cipher) 
pyz = PYZ(a.pure, a.zipped_data, 
     cipher=block_cipher) 
exe = EXE(pyz, 
     a.scripts, 
     exclude_binaries=True, 
     name='apv', 
     debug=False, 
     strip=False, 
     upx=True, 
     console=False , icon='LauncherIcon.ico') 
coll = COLLECT(exe, 
      a.binaries, 
      a.zipfiles, 
      a.datas, 
      strip=False, 
      upx=True, 
      name='apv') 
+0

Bitte Spec-Datei hinzufügen. Ich denke, du hast wahrscheinlich keine Deps zu der Spezifikation hinzugefügt, weil 'Image nicht laden 'eine Datei aus dem Ordner sdl2 benötigt (zumindest in den Fehlern, die ich erlebt habe). – KeyWeeUsr

+0

Wie ich schon sagte, habe ich meine eigene Spec-Datei nicht verwendet, pyinstaller hat sie selbst generiert, also denke ich. – Afflicted

Antwort

0

Wenn Sie nicht Spec-Datei erstellt haben, können Sie immer noch Notwendigkeit die Abhängigkeiten zu verpacken, die here im Collect() sind.

Wie es in der docs des pyinstaller erwähnt wird:

Sie können auf der Kommandozeile pyinstaller weitere Dateien geben.

Was bedeutet, dass Sie --add-data tun könnte, oder Sie können die Spezifikation irgendwo und bearbeiten sie manuell mit --specpath Dump. Here ist, was Collect() im Grunde tut, um das Zeug zu verpacken.

Bearbeiten: Yup, Sie vermissen definitiv die Deps. Sieh dir kivys Spezifikationen an.

Wenn Sie für --add-data gehen, sollten Sie überprüfen kivy.deps Ordner und __init__() s in ihnen, weil diese Ihnen sagen, welchen Pfad Sie suchen. Aber das manuelle Bearbeiten der Spezifikation ist weniger zeitaufwendig.

+0

Danke Kumpel das ist die klarste Antwort, die ich auf diesem gefunden habe Ich kann nicht glauben, dass ich es vermisst habe, aber immer noch danke, weil es ein massiver Schmerz war! – Afflicted

Verwandte Themen