Table Of Contents
Create a package for Windows¶
Packaging your application for the Windows platform can only be done inside the Windows OS. The following process has only been tested inside VirtualBox using Windows 7 and the portable package of Kivy.
The package will be 32 bits but can be run on both 32 and 64 bit Windows platforms.
Requirements¶
- Latest Kivy (the whole portable package, not only the github sourcecode)
- PyInstaller 2.0
Create the spec file¶
For this example, we’ll package the touchtracer example and embed a custom icon. The touchtracer example is the kivyexamplesdemotouchtracer directory, and the main file is named main.py.
Double click on the Kivy.bat and a console will open.
Go to the pyinstaller 2.0 directory, and create the initial specs:
cd pyinstaller-2.0 python pyinstaller.py --name touchtracer ..\kivy\examples\demo\touchtracer\main.py
You can also add an icon.ico file to the application folder in order to create an icon for the executable. If you don’t have an .ico file available, you can convert your icon.png file to ico using the web app ConvertICO. Save the icon.ico in the touchtracer dxirectory and type:
python pyinstaller.py --name touchtracer --icon ..\kivy\examples\demo\touchtracer\icon.ico ..\kivy\examples\demo\touchtracer\main.py
For more options, please consult the PyInstaller 2 Manual.
The spec file will be touchtracer.spec located in inside the pyinstaller + touchtracer directory. Now we need to edit the spec file to add kivy hooks to correctly build the exe. Open the spec file with your favorite editor and add theses lines at the beginning of the spec:
from kivy.tools.packaging.pyinstaller_hooks import install_hooks install_hooks(globals())
In the Analysis() function, remove the hookspath=None parameter. If you don’t do this, the kivy package hook will not be used at all.
Then you need to change the COLLECT() call to add the data for touchtracer (touchtracer.kv, particle.png, ...). Change the line to add a Tree() object. This Tree will search and add every file found in the touchtracer directory to your final package:
coll = COLLECT( exe, Tree('../kivy/examples/demo/touchtracer/'), a.binaries, #... )
We are done. Your spec is ready to be executed!
Build the spec¶
Double click on Kivy.bat
Go to the pyinstaller directory, and build the spec:
cd pyinstaller-2.0 python pyinstaller.py touchtracer\touchtracer.spec
The package will be in the touchtracerdisttouchtracer directory.
Including Gstreamer¶
If you wish to use Gstreamer, please refer to the most up-to-date documentation in Creating packages for MacOSX.