三、用户向导(3.1安装)

我们不要总是重新制造各种轮子,但我们要试着做一些创新的东西;因此,我们要尽可能的使用现存的、高质量的第三方库。为了支持全部的、丰富的Kivy的特色功能,其它几个库是需要首先进行安装的。如果你不需要一些特殊的功能(例如视频回放等),那么你可以不安装相应的依赖。但是有一个依赖库是必须安装的:Cython。

当前版本至少需要Cython v0.20,并且已经在v0.23下测试通过。较新的版本可能能够运行,但是由于没有进行测试,因此不能保证流畅运行。

另外,你需要Python(2.7 <= x < 3.0)或者(3.3 <= x),如果你想使用窗口相关(比如打开一个窗口),音频/视频回放或者拼写检查等功能,额外的依赖必须安装。对于这些,我们推荐SDSL2,Gstreamer 1.x和PyEnchant,respectively。

其它一些库有:
* OpenCV 2.0:摄像头输入
* Pillow:图像和文本显示
* PyEnchant:拼写检查

不要恐慌

我们不希望你自己安装这些库。我们已经创建好了你可以直接使用的包库,并且它们包含了目标平台的所需的依赖库。我们仅仅想让你知道它们是可选择的,同时为你作了一个关于Kivy内部使用的包库的大致预览。

一、稳定版本

Kivy的最新稳定版本可以在http://kivy.org/#download找到,请针对你的系统平台参阅相关的安装说明。

二、开发版本

开发版本适合开发者和测试者使用。注意当运行开发版本时,在你的任务里,你正在运行潜在的错误代码。为了使用开发版本,你首先需要安装依赖;而后,你需要在你的计算机中设置Kivy以便更容易开发,请查看我们的贡献(Contributing)文档。

(一)安装依赖

为了安装Kivy的依赖,请依据你的系统平台遵循下面的向导。

1. 乌班图(Ubuntu)

对于乌班图V12.04或更高(测试到V14.04),仅仅需要输入下面的命令来安装所需的包:

$ sudo apt-get install python-setuptools python-pygame python-opengl \
  python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
  build-essential libgl1-mesa-dev-lts-quantal libgles2-mesa-dev-lts-quantal\
  python-pip

对于乌班图V15.04和老于V12.04的版本,下面的方法应该可以工作:

$ sudo apt-get install python-setuptools python-pygame python-opengl \
  python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
  build-essential libgl1-mesa-dev libgles2-mesa-dev zlib1g-dev python-pip

Kivy需要一个较新版本的Cpython,因此,从pypi获取最新的版本是较好的办法:

$ sudo pip install --upgrade Cython==0.23
2. OS X

你可以在终端控制台输入以下命令来配置Kivy的依赖:

curl -O -L https://www.libsdl.org/release/SDL2-2.0.4.dmg
curl -O -L https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.dmg
curl -O -L https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.dmg
curl -O -L https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.13.dmg
curl -O -L http://gstreamer.freedesktop.org/data/pkg/osx/1.7.1/gstreamer-1.0-1.7.1-x86_64.pkg
curl -O -L http://gstreamer.freedesktop.org/data/pkg/osx/1.7.1/gstreamer-1.0-devel-1.7.1-x86_64.pkg
hdiutil attach SDL2-2.0.4.dmg
sudo cp -a /Volumes/SDL2/SDL2.framework /Library/Frameworks/

这可能会向你请求根访问密码,提供给它而后在你的终端控制台粘贴以下命令:

hdiutil attach SDL2_image-2.0.1.dmg
sudo cp -a /Volumes/SDL2_image/SDL2_image.framework /Library/Frameworks/
hdiutil attach SDL2_ttf-2.0.13.dmg
sudo cp -a /Volumes/SDL2_ttf/SDL2_ttf.framework /Library/Frameworks/
hdiutil attach SDL2_mixer-2.0.1.dmg
sudo cp -a /Volumes/SDL2_mixer/SDL2_mixer.framework /Library/Frameworks/
sudo installer -package gstreamer-1.0-1.7.1-x86_64.pkg -target /
sudo installer -package gstreamer-1.0-devel-1.7.1-x86_64.pkg -target /
pip install --upgrade --user cython pillow

现在你已经获取了所有的Kivy依赖,你需要使用下面的命令来安装它:

xcode-select --install

转到一个合适的路径,如:

mkdir ~/code
cd ~/code

你现在可以安装Kivy:

git clone http://github.com/kivy/kivy
cd kivy
make

这将会编译Kivy,为了在你的Python环境中可以访问它,你需要将PYTHONPATH指向这个路径:

export PYTHONPATH=~/code/kivy:$PYTHONPATH

为了测试Kivy是否安装成功,在你的终端窗口输入:

python -c "import kivy"

它可能给你一个类似如下的输出:

$ python -c "import kivy"
[INFO   ] [Logger      ] Record log in /Users/quanon/.kivy/logs/kivy_15-12-31_21.txt
[INFO   ] [Screen      ] Apply screen settings for Motolora Droid 2
[INFO   ] [Screen      ] size=480x854 dpi=240 density=1.5 orientation=portrait
[INFO   ] [Kivy        ] v1.9.1-stable
[INFO   ] [Python      ] v2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]

如果使用brew方法来安装Kivy,需要使用homebrew来安装依赖:

$ brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
3. Windows

可参阅使用开发版Kivy

(二)安装Kivy

现在你已经安装了所有的依赖,是时候下载和编译一个开发版本的Kivy了:
从GitHub下载Kivy:

$ git clone git://github.com/kivy/kivy.git
$ cd kivy

编译:

$ python setup.py build_ext --inplace -f

如果你可以使用make命令,你也可以使用下面的简短的命令进行编译(和上面的命令相同):

$ make

警告,默认情况下,Python V2.7~V2.7.2版本使用gcc编译器,这个编译器搭配早期版本的XCode。对于V4.2版本,仅仅clang编译器默认搭配了XCode。这意味着,如果你使用XCode4.2及更高版本,你需要确保你至少安装了Python 2.7.3,最好是使用最新的版本。

如果你想更新Kivy代码,设置PYTHONPATH环境变量指向你的镜象。这种情况下,在每一个小的更新后,你不需要使用安装(setup.pyinstall)。Python将会从你的镜象中导入Kivy。

相应地,如果你不想改变Kivy,你也可以运行:

$ python setup.py install

如果你想提交代码(补丁,新特性)到Kivy的代码库,请参阅提交代码

(三)运行测试套件

为了帮助在Kivy中测试问题和行为变动,Kivy提供了一组单元测试。当你安装Kivy后或你想做一个改动时,就可以运行它。如果在Kivy中发生错误,也许测试将会显示它们。

Kivy基于nosetest测试,你可以使用包管理或pip进行安装:

$ pip install nose

为了运行测试套件,可以执行:

$ make test
(四)卸载Kivy

如果你安装了多个版本的Kivy,你也许会迷惑于调用了哪个版本的Kivy。如果你已经在Python库路径下安装了多个Kivy版本,请注意你需要多次执行下面的步骤:

$ python -c 'import kivy; print(kivy.__path__)'

接下来,递归移除这个路径。

如果你在Linux上使用easy_install安装了Kivy,路径可能包含一个'egg'的路径,使用下面的方法来移除它:

$ python -c 'import kivy; print(kivy.__path__)'
['/usr/local/lib/python2.7/dist-packages/Kivy-1.0.7-py2.7-linux-x86_64.egg/kivy']
$ sudo rm -rf /usr/local/lib/python2.7/dist-packages/Kivy-1.0.7-py2.7-linux-x86_64.egg

如果你使用apt-get的方式安装了Kivy,则使用下面的命令:

$ sudo apt-get remove --purge python-kivy

下节预告:3.1.2在Windows平台上安装Kivy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容