標籤:

Kivy 中文安裝指南(Linux系統)

Linux系統安裝Kivy指南

使用包管理器進行安裝

本節是給各種發行版用對應的deb或者rpm之類的包進行安裝s .deb/.rpm/...

Ubuntu / Kubuntu / Xubuntu / Lubuntu (13.10 Saucy Salamander以及之後更新的版本)

1 首先要根據你的喜好來選擇一個PPA源添加到你的系統里:

(譯者註:這裡穩定版和每夜版二選一就可以,如果要體驗最新特性,可以使用每夜版,但是如果用於長期使用追求穩定,推薦用穩定版,二者千萬不要同時添加,避免出現混亂和錯誤。)

sudo add-apt-repository ppa:kivy-team/kivy #穩定版nsudo add-apt-repository ppa:kivy-team/kivy-daily #每夜版n

2 然後就要用包管理器來更新一下包列表了:

sudo apt-get updaten

3 更新列表完畢之後,如果沒有錯誤,就可以安裝了:

sudo apt-get install python-kivy #Python2 用這個來安裝nsudo apt-get install python3-kivy #Python3 要加一個3 nsudo apt-get install python-kivy-examples #可選的樣例代碼n

Debian (8.0 Jessie或者更新的版本)

特別注意

Debian 7 Wheezy 已經不支持了,你至少要升級到Debian 8 Jessie 才能安裝Kivy。

1 通過Synaptic新立得包管理器把下面的PPA源添加到你的sources.list列表中,手動添加也可以:

  • Jessie/Testing:

#穩定版:nndeb http://ppa.launchpad.net/kivy-team/kivy/ubuntu trusty mainnn#每夜版:nndeb http://ppa.launchpad.net/kivy-team/kivy-daily/ubuntu trusty main n

  • Sid/Unstable:

#穩定版:nndeb http://ppa.launchpad.net/kivy-team/kivy/ubuntu utopic main nn#每夜版:ndeb http://ppa.launchpad.net/kivy-team/kivy-daily/ubuntu utopic main n

2 添加了源之後,就是要添加一些GPG key到你的apt keyring裡面了,運行下面的命令:

#非root用戶:nsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A863D2D6nn#root用戶:napt-key adv --keyserver keyserver.ubuntu.com --recv-keys A863D2D6n

3 然後跟Ubuntu裡面那個類似,更新列表完畢之後,如果沒有錯誤,就可以安裝了:

sudo apt-get update #安裝之前一定要先這樣更新一下列表nsudo apt-get install python-kivy #Python2 用這個來安裝nsudo apt-get install python3-kivy #Python3 要加一個3 nsudo apt-get install python-kivy-examples #可選的樣例代碼n

Mint/Bodhi/Suse/Gentoo 這部分省略

Mint的安裝基本與對應的Ubuntu版本一樣,Bodhi估計用的人不多我懶得翻譯了,OpenSuse/Gentoo 的用戶應該比較有經驗了還用得著我翻譯么?

Fedora

1 在終端里添加repo(注意版本不要弄錯):

#Fedora 18:nsudo yum-config-manager --add-repo=http://download.opensuse.orgn/repositories/home:/thopiekar:/kivy/Fedora_18/home:thopiekar:kivy.reponn#Fedora 17:nsudo yum-config-manager --add-repo=http://download.opensuse.orgn/repositories/home:/thopiekar:/kivy/Fedora_17/home:thopiekar:kivy.reponn#Fedora 16:nsudo yum-config-manager --add-repo=http://download.opensuse.orgn/repositories/home:/thopiekar:/kivy/Fedora_16/home:thopiekar:kivy.repon

2 跟Ubuntu和Debian裡面一樣,添加源之後還是要用包管理器更新一下包列表。

3 更新列表之後通過包管理器就可以安裝python-Kivy和python-Kivy-examples了。

在虛擬環境中安裝

必備的依賴包

Cython

一定要注意,這裡超級重要,不同版本的Kivy只能用特定版本的Cython配合才能使用,二者一定要匹配,關係如下表:

KivyCython1.80.20.21.90.21.21.9.10.23

SDL2框架相關的依賴包

以Ubuntu為例

在下面的命令樣例中,用python和python-dev就表明是給Python2安裝,而python3和python3-dev是針對Python3的。

# 先要安裝這些必備的組件,注意上面剛提示過,如果要用Python3,在python後面加上一個3就可以了:nsudo apt-get install -y npython-pip nbuild-essential ngit npython npython-dev nffmpeg nlibsdl2-dev nlibsdl2-image-dev nlibsdl2-mixer-dev nlibsdl2-ttf-dev nlibportmidi-dev nlibswscale-dev nlibavformat-dev nlibavcodec-dev nzlib1g-devn

特別注意

在某些特定的Linux版本上,你可能會收到一個與ffmpeg包有關的錯誤信息。這種情況下,就可以用libav-tools替換掉上文命令中的ffmpeg,另一種解決方法是使用ppa來安裝ffmpeg,使用的命令如下所示:

sudo add-apt-repository ppa:mc3man/trusty-mediansudo apt-get updatensudo apt-get install ffmpegn

要在虛擬環境中安裝Kivy了

首先要確保Pip, Virtualenv 和 Setuptools 這幾個包都更新到最新:

sudo pip install --upgrade pip virtualenv setuptoolsn

然後創建一個名為"kivyinstall"的新的虛擬環境,這時候你有兩種選擇:

  • 第一種是用系統自帶的默認Python解釋器:

virtualenv --no-site-packages kivyinstalln

  • 第二種是設定一個指定位置的Python解釋器,這裡舉例就假設要用的解釋器路徑在 /usr/bin/python2.7

virtualenv --no-site-packages -p /usr/bin/python2.7 kivyinstalln

建立好虛擬環境之後,就是進入裡面了:

. kivyinstall/bin/activaten

千萬要注意,這裡要安裝正確的Cython版本:

pip install Cython==0.23n

然後就可以在這個虛擬環境裡面安裝Kivy的穩定版了:

pip install kivyn

如果要用開發版本的Kivy,就換成下面的命令來安裝:

pip install git+https://github.com/kivy/kivy.git@mastern

古老的PyGame相關的依賴包

Ubuntu 系統

首先還是要安裝一大堆必要的系統組件了:

sudo apt-get install -y npython-pip nbuild-essential nmercurial ngit npython npython-dev nffmpeg nlibsdl-image1.2-dev nlibsdl-mixer1.2-dev nlibsdl-ttf2.0-dev nlibsmpeg-dev nlibsdl1.2-dev nlibportmidi-dev nlibswscale-dev nlibavformat-dev nlibavcodec-dev nzlib1g-devn

Fedora 系統

Fedora 系統就要用yum來實現組件安裝:

sudo yum install nmake nmercurial nautomake ngcc ngcc-c++ nSDL_ttf-devel nSDL_mixer-devel nkhrplatform-devel nmesa-libGLES nmesa-libGLES-devel ngstreamer-plugins-good ngstreamer ngstreamer-python nmtdev-devel npython-devel npython-pipn

OpenSuse 系統

這裡示範的是用zypper作為包管理器:

sudo zypper install npython-distutils-extra npython-gstreamer-0_10 npython-enchant ngstreamer-0_10-plugins-good npython-devel nMesa-devel npython-pipnnsudo zypper install -t pattern devel_C_C++n

然後又到了在虛擬環境中安裝Kivy的時候了

首先要確保Pip, Virtualenv 和 Setuptools 這幾個包都更新到最新:

sudo pip install --upgrade pip virtualenv setuptoolsn

然後創建一個名為"kivyinstall"的新的虛擬環境,這時候你有兩種選擇:

  • 第一種是用系統自帶的默認Python解釋器:

virtualenv --no-site-packages kivyinstalln

  • 第二種是設定一個指定位置的Python解釋器,這裡舉例就假設要用的解釋器路徑在 /usr/bin/python2.7

virtualenv --no-site-packages -p /usr/bin/python2.7 kivyinstalln

建立好虛擬環境之後,就是進入裡面了:

. kivyinstall/bin/activaten

千萬要注意,這裡要安裝numpy以及正確的Cython版本:

pip install numpynpip install Cython==0.23n

這裡注意,如果你不想用sdl2,而想要用pygame,你可以通過export USE_SDL2=0來強制使用pygame。這樣一來,Kivy在安裝過程中找不到sdl2的鏈接,就會自動設置這個值為0,然後嘗試用pygame來構建。

pip install hg+http://bitbucket.org/pygame/pygamen

接下來就可以在這個虛擬環境裡面安裝Kivy的穩定版了:

pip install kivyn

如果要用開發版本的Kivy,就換成下面的命令來安裝:

pip install git+https://github.com/kivy/kivy.git@mastern

虛擬環境中安裝額外的包

在該虛擬環境中安裝開發版的buildozer:

pip install git+https://github.com/kivy/buildozer.git@mastern

安裝開發版plyer

pip install git+https://github.com/kivy/plyer.git@mastern

其他的兩個可能用到的包:

pip install -U pygments docutilsn

從命令行中啟動

Kivy官方提供的樣例代碼中有一些是可以在安裝配置好Kivy環境後立即就能運行的,這些例子就集成在Kivy包之內。所以,如果你要嘗試這些樣例,你得實現確定好easy_install把你當前在用的Kivy安裝到了哪裡:

python -c "import pkg_resources; print(pkg_resources.resource_filename(kivy, ../share/kivy-examples))"n

然後估計你會得到一個路徑了,類似下面這樣: (譯者註:這個路徑是根據上面那個命令來輸出的,每個人不同配置都產生不同結果,千萬別無腦複製哦!)

/usr/local/lib/python2.6/dist-packages/Kivy-1.0.4_beta-py2.6-linux-x86_64.egg/share/kivy-examples/n

然後你知道位置了,就進入這個路徑,然後運行一下樣例吧。 比如你可以嘗試一下觸控追蹤的樣例touchtracer:

cd <path to kivy-examples #把這裡替換成你自己的kivy-examples目錄ncd demo/touchtracernpython main.pyn

這還有一個圖片示意程序pictures:

cd <path to kivy-examples #把尖括弧內容替換成你自己的kivy-examples目錄ncd demo/picturesnpython main.pyn

If you are familiar with Unix and symbolic links, you can create a link directly in your home directory for easier access. For example:

如果你對Unix和符號鏈接比較熟悉,你可以把這個目錄在你的home目錄裡面創建一個鏈接,這樣以後訪問更方便,舉例如下:

1 通過上面演示過的命令獲取樣例代碼所在位置;

2 把獲取的路徑補齊到下列命令中,然後粘貼到終端中:

ln -s <path to kivy-examples ~/#把尖括弧內容替換成你自己的kivy-examples目錄ncd ~/kivy-examples n

3 接下來你就可以用如下這種特別簡單的方式來訪問樣例代碼了:

cd ~/kivy-examplesn

如果你想更省事,把Kivy程序當做常規腳本來運行(比如輸入./main.py),或者雙擊來運行,你就需要創建一個正確的Python鏈接。例如下面這樣:

sudo ln -s /usr/bin/python2.7 /usr/bin/kivyn

或者如果你想要在某個虛擬環境中運行Kivy,那給對應該環境的Python做個鏈接就行了:

sudo ln -s /home/your_username/Envs/kivy/bin/python2.7 /usr/bin/kivyn

還沒完,接下來你還要在每一個main.py的開頭添加如下內容作為第一行:

#!/usr/bin/kivyn

特別注意

一定要小心哈,Windows系統下的Python保存的文件結尾類型很可能是(CR-LF),Linux系統不會忽略掉其中的<CR,並且依然當做文件名字的一部分來讀取。這就會導致很多亂七八糟的出錯信息,所以記得先確定把文件轉換成Unix風格的結尾。

設備許可權

當你啟動app的時候,Kivy會用到Mtdev來搜索是否有可用的多指觸摸設備,如果找到就拿來用作輸入。然而這類設備的使用權通常都被嚴格限制到了特定的用戶或者用戶組。

如果你的用戶沒有這些許可權,Kivy就會記下一個錯誤,然後給出一個與這些設備相關的警告,大概如下所示:

Permission denied:/dev/input/eventXn

所以你要使用這些信息,就必須賦予當前用戶或者用戶組所必要的許可權。可以通過如下命令實現:

sudo chmod u+r /dev/input/eventXn

上面這個是給當前用戶賦予許可權,如果要給當前用戶組許可權,可以用下面這個命令實現:

sudo chmod g+r /dev/input/eventXn

這個授權是非永久性的,這次授權後可用,以後又要重新授權才能用。所以有個更好的永久解決方案,就是把當前用戶添加到有許可權的用戶組中。例如,在Ubuntu系統裡面,你可以把這個用戶添加到input這個用戶組:

sudo adduser $USER inputn

特別注意

修改完用戶許可權之後,你要註銷然後再登錄才能使用這些許可權。


推薦閱讀:

Kivy中文編程指南:KV 語言
Kivy中文編程指南:基礎知識
Kivy中文編程指南:Kivy 虛擬機
Kivy中文編程指南:架構概覽

TAG:Kivy | Python |