将Python编译成Windows应用程序

时间:2015-02-02 20:04:05

标签: python windows exe kivy

目前我正在开发一个用Python编程语言编写的别人项目的分支。

我可以访问我需要的所有源代码,包含我想要做的所有更改,以及所有内容设置'我需要它。

我目前的步骤是尝试以某种方式编译它,因此它在独​​立应用程序中作为窗口运行。我知道这是可能的,因为这是源应用程序的运行方式。目前我可以访问带有python扩展模块的Win Studio,WinPython,构建GUI的kivy框架本身等。

但我似乎无法弄清楚如何做到这一点。我粗略的研究提出了一个名为py2exe的程序,但根据我的判断,这个程序不能满足我的要求。

1 个答案:

答案 0 :(得分:0)

http://kivy.org/docs/guide/packaging-windows.html

复制

创建规范文件

对于此示例,我们将打包touchtracer示例并嵌入自定义图标。 touchtracer示例是kivy \ examples \ demo \ touchtracer目录,主文件名为main.py。

双击Kivy.bat,将打开一个控制台。

转到pyinstaller 2.1目录并创建初始规范:

cd pyinstaller-2.1
python pyinstaller.py --name touchtracer ..\kivy\examples\demo\touchtracer\main.py

您还可以将icon.ico文件添加到应用程序文件夹,以便为可执行文件创建图标。如果您没有.ico文件,可以使用Web应用程序ConvertICO将icon.png文件转换为ico。将icon.ico保存在touchtracer目录中,然后键入:

python pyinstaller.py --name touchtracer --icon ..\kivy\examples\demo\touchtracer\icon.ico ..\kivy\examples\demo\touchtracer\main.py

有关更多选项,请参阅PyInstaller 2手册。

spec文件将是位于pyinstaller + touchtracer目录内的touchtracer.spec。现在我们需要编辑spec文件以添加kivy钩子来正确构建exe。使用您喜欢的编辑器打开spec文件,并在规范的开头添加这些行:

from kivy.tools.packaging.pyinstaller_hooks import install_hooks
install_hooks(globals())

Analysis()函数中,删除hookspath=None参数。如果不这样做,则根本不会使用kivy包挂钩。

然后,您需要更改COLLECT()调用以添加touchtracer的数据(touchtracer.kv,particle.png,...)。更改行以添加Tree()对象。此Tree将搜索touchtracer目录中的每个文件并将其添加到最终包中:

coll = COLLECT( exe, Tree('../kivy/examples/demo/touchtracer/'),
               a.binaries,
               #...
               )

我们完成了。您的规格已准备好执行!

制作规范

双击Kivy.bat

转到pyinstaller目录,然后构建规范:

cd pyinstaller-2.1
python pyinstaller.py touchtracer\touchtracer.spec

该软件包将位于touchtracer \ dist \ touchtracer目录中。