python - 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。
解决方案
您是否尝试过从终端运行 exe?我怀疑您的代码工作正常,但执行后它会关闭。
您可以使用 pyautogui 并添加如下内容:
import keyboard
#Your script
keyboard.wait('esc')
现在它只会在您按 Escape 时关闭。
推荐阅读
- python - 结合使用 python 消除常见列的 pandas 数据框
- python - 为什么 BeautifulSoup 找不到包含文本的标签,但我可以运行“查找”并查看 HTML 中的文本?
- php - 如何从两个表构建表,一个具有无用的唯一标识符(WordPress wp_usermeta 表)
- regex - 我如何只在正则表达式中找到换行符?
- java - 在 Intellji Idea 中生成 jar 时如何设置类路径?
- scala - 为什么scala不能将函数名直接传递给val?
- javascript - 使用位置的动画组件“to”属性的 setAttribute 无法设置
- java - 首先按值排序键值对,然后按键。(类似于基数排序)。我需要维护键值关系
- macros - 嵌套在 let 中的 if 子句在宏内未按预期工作
- python - python中的生产者-消费者队列