gpt4 book ai didi

python - 如何从我的 kivy 应用程序(Pyinstaller)获取 Windows 可执行文件?

转载 作者:太空狗 更新时间:2023-10-29 11:17:51 33 4
gpt4 key购买 nike

我已经完成了一个 kivy 应用程序,并使用 buildozer 打包为 .apk。事实是,现在我想使用 Pyinstaller 将 Windows 的 .exe 打包,但我已经意识到这两个程序(buildozer 和 Pyinstaller)的工作方式不同。我一直在寻找一个可以帮助我获取文件的好教程,但是我看到的所有教程都太简单了,没有解释例如如何导入 main.py 的外部文件。 (例如图像)以及如何导入外部模块(在 buildozer 中,我必须将我想要的库添加到 apk 文件才能正常工作)。我在 Ubuntu 中工作(如果我想获得适用于 Windows 的可执行文件,我应该在 Windows 中工作吗?)并且我将列表添加到我的 .apk 中以正常工作。名单是:

requirements = kivy,sqlite3,requests,simplejson,icalendar,datetime,pytz,HTMLParser,email,openssl

如果有人能告诉我如何添加其他文件(main.py 是主文件,但我有 2 个其他文件导入到 main.py 中)我会很高兴,因为我已经尝试了很多次直到不起作用。

最佳答案

您必须在 Windows 环境中运行 PyInstaller yourfile.spec。我可以分享我正在使用的规范文件作为示例。

# -*- mode: python -*-

import os
from os.path import join

from kivy import kivy_data_dir
from kivy.deps import sdl2, glew
from kivy.tools.packaging import pyinstaller_hooks as hooks

block_cipher = None
kivy_deps_all = hooks.get_deps_all()
kivy_factory_modules = hooks.get_factory_modules()

datas = [
(join('common', '*.ini'), 'common')
]

# list of modules to exclude from analysis
excludes_a = ['Tkinter', '_tkinter', 'twisted', 'docutils', 'pygments']

# list of hiddenimports
hiddenimports = kivy_deps_all['hiddenimports'] + kivy_factory_modules

# binary data
sdl2_bin_tocs = [Tree(p) for p in sdl2.dep_bins]
glew_bin_tocs = [Tree(p) for p in glew.dep_bins]
bin_tocs = sdl2_bin_tocs + glew_bin_tocs

# assets
kivy_assets_toc = Tree(kivy_data_dir, prefix=join('kivy_install', 'data'))
source_assets_toc = Tree('images', prefix='images')
assets_toc = [kivy_assets_toc, source_assets_toc]

tocs = bin_tocs + assets_toc

a = Analysis(['yourmain.py'],
pathex=[os.getcwd()],
binaries=None,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
runtime_hooks=[],
excludes=excludes_a,
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)


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


exe1 = EXE(pyz,
a.scripts,
name='mywindowsapplication',
exclude_binaries=True,
icon=join('images', 'mywinapp.ico'),
debug=False,
strip=False,
upx=True,
console=False)


coll = COLLECT(exe1,
a.binaries,
a.zipfiles,
a.datas,
*tocs,
strip=False,
upx=True,
name='mywinapp')

将“myfile.spec”文件放在“yourmain.py”文件所在的同一目录中。然后从此目录运行 PyInstaller myfile.spec。将创建一个构建和一个 dist 文件夹。在 dist 文件夹中,您可能会找到您的 exe。希望这能让你继续前进。

关于python - 如何从我的 kivy 应用程序(Pyinstaller)获取 Windows 可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37696206/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com