python - 带有 PyInstaller 的 Python kivy GUI 的 Python 2.7 单一可执行文件
问题描述
我试图用 pyinstaller 将我的 kivy GUI 应用程序打包成一个可执行文件,但没有成功。乳清我运行 PyInstaller,它会创建一个可执行文件,但是当我运行它时,我收到一个“致命错误”,说“无法执行脚本 myApp”。我在 Windows 上使用 python 2.7。这是我的目录设置:
GUI_DEV\
-myApp_style.kv (this is my kivy file)
-myApp.py (this is my main script)
-ico.ico (this is my icon file)
-myImage.png (this is an image used by myApp.py)
rel\
-myApp.spec (this is the spec file I am using with pyinstaller)
这是我的 myApp.py 代码:
import kivy
#kivy.require("1.9.0")
from kivy.core.window import Window
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty
from kivy.lang import Builder
import sys, os
def resourcePath():
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS)
return os.path.join(os.path.abspath("."))
Builder.load_file('myApp.kv')
class designerLayout(GridLayout):
part = "123"
def update(self):
self.part = value
self.id_test.text = "hello world: "+str(self.part)
return
def spinner_clicked(self, value):
self.part = value
self.id_test.text = "hello world: "+str(self.part)
class myApp(App):
def build(self):
Window.clearcolor = (1,1,1,1)
Window.size = (930,780)
return designerLayout()
if __name__ == '__main__':
kivy.resources.resource_add_path(resourcePath()) # add this line
calcApp = myApp()
calcApp = myApp()
calcApp.run()
这是我的 myApp.spec 文件:
# -*- mode: python -*-
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['..\\myApp.py'],
pathex=['C:\\GUI_DEV\\rel\\MyHiddenImports'],
binaries=None,
datas=None,
hiddenimports=['MyHiddenImports'],
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)
a.datas += [('myApp_style.kv', '../myApp_style.kv', 'DATA')]
exe = EXE(pyz, Tree('C:\\GUI_DEV\\','Data'),
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
name='myApp',
debug=False,
strip=False,
upx=True,
console=False, icon='C:\\GUI_DEV\\ico.ico' )
然后我运行命令:
python -m PyInstaller myApp.spec
从 GUI_DEV\rel 目录。
关于为什么这不起作用的任何想法?我没有收到任何指向任何特定问题的错误。
解决方案
推荐阅读
- python - 在“if”语句中使用 csv 值
- mysql - 通过推荐计算用户数据
- api - React-Native Promise.all 和多个 API 请求
- c - 在 Dynamic 中使用指针将一个字符串复制到另一个字符串中
- netbeans - Netbeans 默认使用逗号。为什么?
- angular - 选项卡 Ionic 4 中的插槽绑定
- sql - 按数组聚合的列内的相等数据分组
- odbc - 从 Windows PC 访问 i 系列假脱机文件
- swift - 试图获取 2 个视图之一的 frame.height,它在 stackview 内同样填充
- c - `int main(i){ printf("i = %d\n", i); }` 我的值为 1。为什么?请解释?