目前我正在开发一个用Python编程语言编写的别人项目的分支。
我可以访问我需要的所有源代码,包含我想要做的所有更改,以及所有内容设置'我需要它。
我目前的步骤是尝试以某种方式编译它,因此它在独立应用程序中作为窗口运行。我知道这是可能的,因为这是源应用程序的运行方式。目前我可以访问带有python扩展模块的Win Studio,WinPython,构建GUI的kivy框架本身等。
但我似乎无法弄清楚如何做到这一点。我粗略的研究提出了一个名为py2exe的程序,但根据我的判断,这个程序不能满足我的要求。
答案 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目录中。