首页 > 解决方案 > Kivy - 我在 Windows 上的 .exe 文件无法打开

问题描述

我正在尝试创建一个 Windows Kivy 程序,但我遇到了一些问题。我按照 kivy 网站 ( https://kivy.org/doc/stable/guide/packaging-windows.html ) 上列出的步骤进行操作,并且能够创建可执行文件而没有任何错误。问题是当我打开 dist 文件夹中的可执行文件时,它会在瞬间打开一个终端/命令提示符,然后立即关闭。我真的不能说什么是错的,因为我没有得到任何错误。

我将我的规范文件保存在与我的 python 文件(main.py)、kivy 文件(chemgui.kv)和我在我的 kivy 文件(chemistrybck.jfif)中使用的图像相同的文件夹中。这是我创建 .exe 文件所采取的步骤。

python -m PyInstaller --name Chem C:\Users\AdhamAlHossary\Desktop\Package\main.py

化学规范

# -*- mode: python ; coding: utf-8 -*-

from kivy_deps import sdl2, glew

block_cipher = None


a = Analysis(['C:\\Users\\AdhamAlHossary\\Desktop\\Package\\main.py'],
             pathex=['C:\\Users\\AdhamAlHossary\\Desktop\\Package'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='Chem',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )

coll = COLLECT(exe, Tree('C:\\Users\\AdhamAlHossary\\Desktop\\Package\\'),
               a.binaries,
               a.zipfiles,
               a.datas,
               *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
               strip=False,
               upx=True,
               upx_exclude=[],
               name='Chem')

然后:

python -m PyInstaller Chem.spec

如果有人可以帮助我,我将不胜感激。我在网上搜索希望找到解决方案,但没有找到任何符合我的问题的东西。

我也在使用 Kivy 1.11.1、Python 3.7 和 PyInstaller 3.6。

标签: pythonwindowskivyexepyinstaller

解决方案


您是否尝试过从终端运行 exe?我怀疑您的代码工作正常,但执行后它会关闭。

您可以使用 pyautogui 并添加如下内容:

import keyboard
#Your script
keyboard.wait('esc')

现在它只会在您按 Escape 时关闭。


推荐阅读