gpt4 book ai didi

python - 如何从 pyInstaller 中删除/排除模块和文件?

转载 作者:太空狗 更新时间:2023-10-30 00:03:17 35 4
gpt4 key购买 nike

我正在尝试缩小我的 python exe 文件的大小,我一直在四处寻找,但似乎找不到删除额外模块的好方法。目前,我发现它正在删除我需要的模块,而不是我告诉它的模块。该文档相当无用,到目前为止我也没有找到示例。

我的规范文件:

a = Analysis(['D:\\<path>\\<scriptName>.py'],
pathex=['c:\\bin\\pyinstaller-2.0'],
hiddenimports=[],
hookspath=None,
)

pyz = PYZ(a.pure)
exe = EXE(pyz,
a.zipfiles,
a.scripts,
a.binaries,
a.datas + [('data/Sounds/Cycle.wav', 'D:\\<path>\\data\\Sounds\\Cycle.wav','DATA'),
('data/Sounds/Hold.wav', 'D:\\<path>\\data\\Sounds\\Hold.wav','DATA'),
('data/Sounds/Timer.wav', 'D:\\<path>\\data\\Sounds\\Timer.wav','DATA'),
('data/Sounds/Warn.wav', 'D:\\<path>\\data\\Sounds\\Warn.wav','DATA'),
],
name=os.path.join('dist', 'timer.exe'),
debug=False,
strip=False,
upx=False,
icon=r"D:\<path>\Icon.ico",
console=True )

现在,我想开始排除事物,但是似乎没有关于如何排除事物的解释。

这些是我在使用 py2exe 时排除的东西:

'win32', 'unittest', _ssl, 'python25.dll', 'w9xpopen.exe', 'wx'
'python25.dll', 'API*', 'KERNALBASE.dll', 'DEVOBJ.dll','CRMGR32.dll',
'POWERPROF.dll', 'msvcm90.dll', 'msvcp90.dll', 'msvcr90.dll'

虽然如果我将其中任何一个添加到 a.binaries 中作为

a.binaries -[('wx')],

它会删除 PyQt4.dll 文件。其他人也是如此。我不遵循这种逻辑。我想,至少,如果它一开始找不到它们,它就会跳过它们,而不是删除其他东西。

py2exe 使我成为一个 26mb 的文件 + 三个文件(exe、library.zip 和 w9xpopen.exe)pyInstaller 为我生成了一个 11mb 的文件和一个文件。

我觉得我可以把它变小,但这排除了让我困惑的事情。它会直接忽略 msv dll 文件并将它们放入。

使用 Python 2.7、PyQt4 4.9.x

最佳答案

我会像这样删除一些:

a.binaries = a.binaries - TOC([
('sqlite3.dll', None, None),
('tcl85.dll', None, None),
('tk85.dll', None, None),
('_sqlite3', None, None),
('_ssl', None, None),
('_tkinter', None, None)
])

关于python - 如何从 pyInstaller 中删除/排除模块和文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034434/

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