[英]exe generated in pyinstaller using python & kivy is not working
[英]Kivy, Python: I cannot reduce the size of the package generated by PyInstaller
我使用python 3和Kivy编写了一个小应用程序。 该应用程序基于python以及kv文件。 我想为Windows创建一个程序包。 根据官方文档中的信息,我能够创建一个程序包,但是它确实很大! 然后,我尝试减小不使用的库之外的软件包的大小。 为此,我再次遵循了官方文档。
这是我创建和修改的规范文件:
from kivy.deps import sdl2, glew
from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal, hookspath
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Users\\..\\wecker'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=hookspath(),
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
**get_deps_minimal(video=None, audio=None))
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='myweckapp',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe, Tree('buildtemp'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='myweckapp')
当我运行命令时:
python -m PyInstaller --name touchtracer examples-path\demo\touchtracer\main.py
我收到以下错误消息:
WARNING: stderr: TypeError: type object got multiplevalues for keyword argument 'excludes'
我无法继续。 我试图消除代码行:
excludes=[],
然后我得到以下消息:
WARNING: stderr: TypeError: type object got multiplevalues for keyword argument 'hiddenimports'
因此,我也试图消除这一行:
hiddenimports=[]
现在,我可以创建一个程序包,但是它仍然很大!
知道我错了吗?
有多大? 我之前使用PyInstaller遇到过类似的尺寸问题。 我有一些巨大的模块,例如IPython,cv2等,并且PyInstaller默认不排除它们。 您可以运行以下代码来获取所有已安装并内置的python模块的列表:
import pkgutil
for i in pkgutil.iter_modules():
print('"'+i[1]+'",')
这将为您提供所有已安装模块的列表。 接下来,运行以下命令以制作SPEC文件:
pyi-makespec main.py
接下来,打开规格文件。 在排除部分中,粘贴从上面的代码创建的列表。 只删除您需要的那些(您将需要删除几个内置函数)。 看看是否有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.