将 Kivy 应用程序编译为 Windows 可执行文件

贾斯汀

过去一周我一直在与 PyInstaller 斗争,试图让我的应用程序编译成单个可执行文件。

我已经用 .spec 文件尝试了几种不同的实现,在我尝试的许多方法中,我可以将它编译成单个可执行文件,该可执行文件在启动时立即崩溃,根本不启动,或者运行,但是非常慢。与我用 PyCharm 运行时相比,没有什么可比的。

我不确定运行速度慢是因为编译器还是什么,但是当我通过 PyCharm 运行它时,执行任务大约需要 1-2 秒才能运行,但是当它从可执行文件运行时,它需要大约 30 -35 秒,应用程序挂起。

我的应用程序基本上从 TextInput 框中获取一些文本,从中获取文本值,执行一些 SQL 查询,然后提交正确的信息以更新/添加条目信息到访问数据库中。

我最新的 .spec 文件如下:

# -*- mode: python -*-

import pyodbc

from datetime                   import date
from kivy.app                   import App
from kivy.uix.button            import Button
from kivy.uix.boxlayout         import BoxLayout
from kivy.uix.label             import Label
from kivy.uix.popup             import Popup
from kivy.uix.textinput         import TextInput
from kivy.lang                  import Builder
from kivy.properties            import BooleanProperty, ObjectProperty
from kivy.deps import sdl2, glew

block_cipher = None


a = Analysis(['DBInterfaceAssistant.py'],
             pathex=['C:\\Python36-32'],
             binaries=[],
             datas=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='DBInterfaceAssistant',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False )

它的产品是一个无法启动的应用程序,它尝试加载应用程序但立即崩溃。

- -编辑 - -

我当前的构建脚本如下:

# -*- mode: python -*-

import pyodbc

from datetime                   import date
from kivy.app                   import App
from kivy.uix.button            import Button
from kivy.uix.boxlayout         import BoxLayout
from kivy.uix.label             import Label
from kivy.uix.popup             import Popup
from kivy.uix.textinput         import TextInput
from kivy.lang                  import Builder
from kivy.properties            import BooleanProperty, ObjectProperty
from kivy.deps import sdl2, glew
from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal, get_deps_all, hookspath, runtime_hooks

block_cipher = None


a = Analysis(['DBInterfaceAssistant.py'],
             pathex=['C:\\Python36-32'],
             binaries=[],
             datas=[],
             hookspath=hookspath(),
             runtime_hooks=runtime_hooks(),
             ** get_deps_all())
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
          name='DBInterfaceAssistant',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False )
约夫·格拉兹纳

您可以使用Kivy文档中的示例

from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal, get_deps_all, hookspath, runtime_hooks
a = Analysis(['examples-path\\demo\\touchtracer\\main.py'],
         ...
         hookspath=hookspath(),
         runtime_hooks=runtime_hooks(),
         ...
         **get_deps_all())

coll = COLLECT(exe, Tree('examples-path\\demo\\touchtracer\\'),
           a.binaries,
           a.zipfiles,
           a.datas,
           *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
           strip=False,
           upx=True,
           name='touchtracer')

https://kivy.org/docs/guide/packaging-windows.html#overwrite-win-hook

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Windows .exe转换为macOS可执行文件/应用程序?

来自分类Dev

Kivy:编译为单个可执行文件

来自分类Dev

将Swift脚本编译为可执行文件

来自分类Dev

如何将C ++代码编译成独立的Windows可执行文件?

来自分类Dev

将Unix可执行文件转换为Windows可执行文件

来自分类Dev

是否可以将OS和Web服务器/服务器应用程序一起编译为单个可执行文件?

来自分类Dev

使用NASM编译Windows可执行文件

来自分类Dev

使用NASM编译Windows可执行文件

来自分类Dev

自动测试应用程序可执行文件(基于Windows的应用程序)

来自分类Dev

qmake:将单个cpp文件编译为可执行文件

来自分类Dev

qmake:将单个cpp文件编译为可执行文件

来自分类Dev

如何将OCaml代码编译为独立的字节码可执行文件?

来自分类Dev

Windows:从Store安装的应用程序的可执行文件在哪里?

来自分类Dev

从 C# 可执行文件启动 Windows 10 Store 应用程序

来自分类Dev

如何将Web应用程序转换为桌面可执行文件?

来自分类Dev

SBCL:将Hunchentoot应用程序部署为可执行文件

来自分类Dev

将HTML5 Canvas + Javascript应用程序转换为可执行文件

来自分类Dev

将python文件和PyQt转换为Windows可执行文件?

来自分类Dev

将脚本编译为可执行文件时,如何实现到外部使用文件的文件路径?

来自分类Dev

如何将环境变量从WSL传递到Windows可执行文件

来自分类Dev

如何将Windows窗体转换为可执行文件

来自分类Dev

在Ubuntu上编译C文件并在Windows上使用可执行文件

来自分类Dev

如何将已编译的资源(.res)文件链接到可执行文件

来自分类Dev

Qt应用程序:如何从Mac创建适用于Windows(和Mac)的独立可执行文件?

来自分类Dev

在Windows上,为什么不能覆盖正在运行的应用程序的可执行文件?

来自分类Dev

如何将旧版可执行文件集成到Spring Integration应用程序中?

来自分类Dev

将处理应用程序合并为1个大可执行文件吗?

来自分类Dev

如何将旧版可执行文件集成到Spring Integration应用程序中?

来自分类Dev

如何将 Node.js 命令行应用程序转换为单个可执行文件?

Related 相关文章

  1. 1

    如何将Windows .exe转换为macOS可执行文件/应用程序?

  2. 2

    Kivy:编译为单个可执行文件

  3. 3

    将Swift脚本编译为可执行文件

  4. 4

    如何将C ++代码编译成独立的Windows可执行文件?

  5. 5

    将Unix可执行文件转换为Windows可执行文件

  6. 6

    是否可以将OS和Web服务器/服务器应用程序一起编译为单个可执行文件?

  7. 7

    使用NASM编译Windows可执行文件

  8. 8

    使用NASM编译Windows可执行文件

  9. 9

    自动测试应用程序可执行文件(基于Windows的应用程序)

  10. 10

    qmake:将单个cpp文件编译为可执行文件

  11. 11

    qmake:将单个cpp文件编译为可执行文件

  12. 12

    如何将OCaml代码编译为独立的字节码可执行文件?

  13. 13

    Windows:从Store安装的应用程序的可执行文件在哪里?

  14. 14

    从 C# 可执行文件启动 Windows 10 Store 应用程序

  15. 15

    如何将Web应用程序转换为桌面可执行文件?

  16. 16

    SBCL:将Hunchentoot应用程序部署为可执行文件

  17. 17

    将HTML5 Canvas + Javascript应用程序转换为可执行文件

  18. 18

    将python文件和PyQt转换为Windows可执行文件?

  19. 19

    将脚本编译为可执行文件时,如何实现到外部使用文件的文件路径?

  20. 20

    如何将环境变量从WSL传递到Windows可执行文件

  21. 21

    如何将Windows窗体转换为可执行文件

  22. 22

    在Ubuntu上编译C文件并在Windows上使用可执行文件

  23. 23

    如何将已编译的资源(.res)文件链接到可执行文件

  24. 24

    Qt应用程序:如何从Mac创建适用于Windows(和Mac)的独立可执行文件?

  25. 25

    在Windows上,为什么不能覆盖正在运行的应用程序的可执行文件?

  26. 26

    如何将旧版可执行文件集成到Spring Integration应用程序中?

  27. 27

    将处理应用程序合并为1个大可执行文件吗?

  28. 28

    如何将旧版可执行文件集成到Spring Integration应用程序中?

  29. 29

    如何将 Node.js 命令行应用程序转换为单个可执行文件?

热门标签

归档