2015-06-26 22 views
9

我試圖打包我的Kivy應用程序的Windows,但我有一些問題。 按照kivy docs中的說明,我創建並編輯了spec文件。我不使用既不pygame的,也不SDL2(我的意思是我不進口他們直接運行我的程序),但在Kivy登錄我看到pygame的仍然提供了我的窗前:Kivy 1.9.0 Windows軟件包KeyError:'rthooks'

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

我不明白爲什麼,因爲我正在使用kivy 1.9.0。

說,建築規範,當我有這個問題:

(...) 
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' 

我有點困惑編輯規範(我需要導入pygame的/ SDL2?),這也許是我問題。我使用Windows 7 x86,Python 3.4.3和K​​ivy 1.9.0。 任何幫助表示讚賞。

+0

我把它縮小到'.spec'文件中的'install_hooks(globals())'行。如果我註釋掉這一行,構建會繼續(儘管Kivy並未包含在內,所以'.exe'不會產生任何效果)。任何人都可以追溯這個問題嗎? –

+0

你可能想提交一個錯誤,因爲它在文檔中聲明* Python 3.3+支持仍然是實驗性的* –

+1

好主意。我剛剛完成了這個工作:https://github.com/kivy/kivy/issues/3622 –

回答

3

更新,2015年10月1日:

It turns out this is a bug.自2015年9月24日的Kivy的最新開發版本應該是免費的這個問題。

從源代碼在Windows上安裝Kivy而不使用Christoph Gohlke's pre-compiled wheels是另一個難以解決的難題,因此在實踐中,如果您真的渴望Python 3.x的兼容性,那麼可能最容易等到Kivy團隊發佈另一個發佈過去1.9.0,和Gohlke的腳本生成易於安裝的二進制文件。


我部分troubleshooted這樣的:

kivy docs你參考提到添加以下三行.spec文件的頂部:

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

的誤差在install_hooks(globals())發生,其定義爲\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) 

但第二行最後一行導致消息:WARNING: stderr: KeyError: 'rthooks'

所以它看起來像是期待一個變量rthooks在全局命名空間,但它不是。

我不確定接下來要做什麼。

+0

GitHub頁面中提出的修復解決了最初的問題。不過,另一個出現了。 看起來程序試圖在.. \ dist \ MyApp \ kivy_install \ data \ data \ style.kv(在一個kv文件內的ttf文件中)找到一個ttf文件(我不使用它) 。我想我真的需要等待另一個版本... 謝謝。 =) – Hisu