0
我使用python 3和Kivy編寫了一個小應用程序。該應用程序基於python以及kv文件。我想爲Windows創建一個包。根據官方文檔中的信息,我能夠創建一個包,但它真的很大!然後,我試圖減小不包含未使用的庫的包的大小。爲此,我再次遵循官方文件。Kivy,Python:我無法減小PyInstaller生成的包的大小
這是規範文件我創建並修改:
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'
因此,我也試圖eleiminate這一行:
hiddenimports=[]
現在,我可以創建一個包但是仍然是巨大的!
任何想法,我錯了嗎?
對不起,我是個新手。我在哪裏必須編寫代碼「import pkgutil ...」? – dade100
我的意思是有很多方法可以減少浪費,看起來像是在正確的軌道上。什麼是完整的文件大小什麼類型的媒體,如果你正在使用。如果有的話,將特定文件轉換爲不同類型可以減少整體大小,並且質量損失最小。理解你本質上構建了一個具有程序所有依賴關係的靜態應用程序也很重要。我在測試機器上爲自己做了一些事情,在這些機器上我捆綁了Python,它和kivy以及我需要的其他所有測試一起使用。你能給我們更多的信息嗎? – Afflicted
您可以打開IDLE並鍵入它.IDLE是python的交互式shell。沒問題,樂意幫忙。 –