Kivy中文编程指南:打包为 Mac 系统可执行文件
特别注意
本文所提供的打包 Kivy 应用程序的方法必须在 OS X 系统内进行,而且不再支持 32 位平台。
使用 Buildozer
pip install git+http://github.com/kivy/buildozer cd /to/where/I/Want/to/package buildozer init
(译者注:这里的/to/where/I/Want/to/package 就是你要打包的应用所在目录。)
然后就还是修改 buildozer.spec 文件,在里面添加好你的应用需要用到的信息。添加依赖包的位置在 requirements= 的那个位置。
默认情况下,requirements 位置所指定的 Kivy 版本会被忽略掉。
如果你在应用程序目录下有 Kivy.app (/Applications/Kivy.app),那就会用这个来打包。如果没有,还可以从 Kivy.org 下载最新版来用了。
如果你要用 Python3 来打包,就就直接从 Kivy.org 的下载页面下载 Kivy3.7z 这个包,然后把它解压缩到应用目录 /Applications 下,命名为 Kivy.app,然后运行:
buildozer osx debug
打包好应用之后,就可以移除用不上的包了,比如如果你不用视频功能,那就可以去掉 gstreamer。同理,其他的用不上的功能,也都可以去掉,这就可以保证打包出来的应用能够有尽量小的体积,足够运行就好了。
作为示例,我们用这个方法打包好了一个应用,Python2 的版本大概 9MB 多一点,Python3 的是 15MB 左右,可以在官方提供的谷歌网盘下载来体验一下。(译者注:如果你身处大陆而无法访问谷歌这种不存在的网站,那么可以试试我的百度网盘分享。)
就这么多,动手试试吧。
目前的 Buildozer 使用了 Kivy SDK 来打包你的应用程序。如果你想对你的程序进行更深入的修改定制,而 buildozer 不足以满足你的需求,你可以试试直接使用 SDK,下面就要详细介绍一下这部分。
使用 Kivy SDK
从 1.9.0 版本开始,Kivy 就开始发布针对 OS X 平台的自我包含的便捷包。
用下面描述的方法就可以使用 Kivy SDK 来打包和发布应用程序了,要添加一些诸如 SDL2 或者 GStreamer 之类的包也都更简单了。
1 首先要确保有未修改过的原版 Kivy SDK,也就是从下载页面获取的 Kivy.app 这个文件。
2 然后运行下面的命令:
mkdir packaging
cd packaging
packaging> git clone https://github.com/kivy/kivy-sdk-packager
packaging> cd kivy-sdk-packager/osx
osx> cp -a /Applications/Kivy.app ./Kivy.App
特别注意
上面这一步是至关重要的,一定要确保目录和权限都没有问题。cp -rf
这样的命令也能实现复制,但会让应用程序无法运行,并且在后续步骤中导致各种错误。
3 接下来就是要把你用 Kivy.app 编译好的应用程序包含进目标文件夹,使用如下命令:
osx> ./package-app.sh /path/to/your/app_folder_name>/