2014-02-11 82 views
5

開始「Hello world」的簡單示例。並得到一個錯誤。Kivy。文本提供程序錯誤

[CRITICAL] [Text  ] Unable to find any valuable Text provider at all! 
[CRITICAL] [App   ] Unable to get a Text provider, abort. 

是不是意味着我沒有一些字體庫?試圖在系統中安裝實際字體的開發庫。

系統:Centos。 Python版本2.7

回答

3

您錯過了PyGame所需的SDL TTF庫。在Ubuntu上,這是一個名爲「libsdl-ttf2.0-dev」的系統軟件包。我認爲在CentOS上它被稱爲「SDL_ttf-devel」。您可以通過查看此PyGame install for RedHat page來確保安裝了其餘的PyGame依賴項。

+1

在我的情況下,這只是因爲我跳過了安裝pygame的步驟。我懷疑這是看到這個錯誤的常見原因。 –

4

根據kivy.core.text代碼:

... 

# Load the appropriate provider 

Label = core_select_lib('text', (
    ('pygame', 'text_pygame', 'LabelPygame'), 
    ('sdlttf', 'text_sdlttf', 'LabelSDLttf'), 
    ('pil', 'text_pil', 'LabelPIL'), 
)) 

if 'KIVY_DOC' not in os.environ: 
    if not Label: 
     from kivy.logger import Logger 
     import sys 
     Logger.critical('App: Unable to get a Text provider, abort.') 
     sys.exit(1) 

... 

,您的系統缺少必需的包。首先安裝其中一個。

+0

它是python還是系統軟件包? – Lissomort

+0

@Lissomort,全部是python庫。但是他們可能依賴於一些系統軟件包。 – falsetru

0

我知道這是一個老帖子。不過,我覺得增加這個,如果一些機構正在搜索同樣的問題...

於Fedora 25的最好是安裝「pygame的」

dnf install pygame 
dnf install pygame-devel 

對我來說這解決了問題。

而且設置工作在Fedora中(我使用Fedora 25)Kivy環境,確保所有的依賴都安裝如下,

dnf install make 
dnf install mercurial 
dnf install automake 
dnf install gcc 
dnf install gcc-c++ 
dnf install SDL_ttf-devel 
dnf install SDL_mixer-devel 
dnf install khrplatform-devel 
dnf install mesa-libGLES 
dnf install mesa-libGLES-devel 
dnf install gstreamer-plugins-good 
dnf install gstreamer 
dnf install gstreamer-python 
dnf install mtdev-devel 
dnf install python-devel 
dnf install python-pip 
dnf install pygame 
dnf install pygame-devel 

我提到的那些作爲單獨的命令,其中的一些自帶默認。

Ref:https://kivy.org/docs/installation/installation-linux.html#fedora