2015-06-26 11 views
9

Sto provando a confezionare la mia app Kivy per Windows, ma sto riscontrando alcuni problemi. Seguendo le istruzioni nel kivy docs, ho creato e modificato il file spec. Io non uso né Pygame né SDL2 (voglio dire che non importarli direttamente per eseguire il mio programma), ma nel Kivy accedo vedo Pygame fornisce ancora la mia finestra:Kivy 1.9.0 Pacchetto Windows KeyError: 'rthooks'

[INFO    ] [Text  ] Provider: pygame 
[INFO    ] [Window  ] Provider: pygame 

non capisco perché, dal momento che sto usando kivy 1.9.0.

Detto questo, io sto avendo questo problema quando si costruisce la specifica:

(...) 
202 WARNING: stderr: File "C:\Program Files\Python Kivy-1.9.0-py3.4-win32-x86\kivy34\kivy\tools\packaging\pyinstaller_hooks\__init__.py", line 13, in install_hooks 
    sym['rthooks']['kivy'] = [join(curdir, 'rt-hook-kivy.py')] 
202 WARNING: stderr: sym['rthooks']['kivy'] = [join(curdir, 'rt-hook-kivy.py')] 
    KeyError: 'rthooks' 
202 WARNING: stderr: KeyError: 'rthooks' 

Sono un po 'confuso su come modificare le specifiche (ho bisogno di importare pygame/SDL2?), E questo è probabilmente il mio problema. Sto usando Windows 7 x86, Python 3.4.3 e Kivy 1.9.0. Qualsiasi aiuto è apprezzato.

+0

Ho ridotto la riga alla riga 'install_hooks (globals())' nel file '.spec'. Se commento questa riga, la build procede (anche se Kivy non viene incluso, quindi il file '.exe' non fa nulla). Qualcuno può rintracciare il problema oltre questo punto? –

+0

si potrebbe voler segnalare un errore come indicato nei documenti * Il supporto per Python 3.3+ è ancora sperimentale * –

+1

Buona idea. Ho appena fatto questo ora: https://github.com/kivy/kivy/issues/3622 –

risposta

3

Update, 1 ottobre 2015:

It turns out this is a bug. A partire dal 24 settembre 2015 l'ultima versione di sviluppo di Kivy dovrebbe essere esente da questo problema.

L'installazione di Kivy su Windows dal codice sorgente, senza l'uso di Christoph Gohlke's pre-compiled wheels, è un altro duro da decifrare, quindi in pratica se si desidera veramente la compatibilità con Python 3.x potrebbe essere più semplice aspettare che il team di Kivy ne rilasci un altro rilascio passato 1.9.0, e lo script di Gohlke per generare il binario facile da installare.


ho parzialmente troubleshooted questo:

Il kivy docs si fa riferimento menzione aggiungendo le seguenti tre righe all'inizio del file .spec:

from kivy.tools.packaging.pyinstaller_hooks import install_hooks 
import os 
install_hooks(globals()) 

L'errore sta accadendo in install_hooks(globals()), che è definito in \Lib\site-packages\kivy\tools\packaging\pyinstaller_hooks\__init__.py:

from os.path import dirname, join 
from functools import partial 

curdir = dirname(__file__) 

def install_hooks(sym, hookspath=None): 

    _hookspath = [curdir] 
    if hookspath is not None: 
     _hookspath += hookspath 

    sym['rthooks']['kivy'] = [join(curdir, 'rt-hook-kivy.py')] 
    sym['Analysis'] = partial(sym['Analysis'], hookspath=_hookspath) 

Ma la penultima riga sta causando il messaggio: WARNING: stderr: KeyError: 'rthooks'.

Quindi sembra che si aspetti una variabile rthooks nello spazio dei nomi globale, ma non lo è.

Non sono sicuro di cosa fare dopo.

+0

La correzione suggerita nella pagina GitHub ha risolto il problema iniziale. Un altro è apparso, però. Sembra che il programma stia cercando di trovare un file ttf (non lo uso) in .. \ dist \ MyApp \ kivy_install \ data \ data \ style.kv (ttf all'interno di un file kv?) Quando si costruisce l'exe . Credo che avrò davvero bisogno di aspettare un'altra versione ... Grazie. =) – Hisu