PyInstaller:不能排除模块

时间:2017-07-11 08:22:56

标签: python pyinstaller

我编译了.py文件的exe,但问题是它是200mb + 我想删除无用的包(例如我不使用的scipy)。

我还没有清楚PyInstaller的正确语法。

让我们从头开始......通常我会做cmd:

cd myFolder
C:\Python27\Scripts\Pyinstaller.exe MyFile.py 

它给了我在dist文件夹中的exe文件。

如果我想设置一些正确的配置?

C:\Python27\Scripts\Pyinstaller.exe MyFile.py Config.py

C:\Python27\Scripts\Pyinstaller.exe Config.py

因为网上我找到了他们两个但我无法分辨。

如果是我试图运行的最后一个:

lock_cipher = None
a = Analysis(['Main.py'],
     pathex=['C:\Users\myname\Desktop\myFolder'],
     binaries=None,
     datas=None,
     hiddenimports=[],
     hookspath=None,
     runtime_hooks=None,
     excludes=None,
     cipher=block_cipher)
a.binaries = [x for x in a.binaries if not x[0].startswith("scipy")]
pyz = PYZ(a.pure, a.zipped_data,
     cipher=block_cipher)
exe = EXE(pyz)
coll = COLLECT(exe)

但它不起作用。我哪里错了?

1 个答案:

答案 0 :(得分:3)

我的建议是您使用仅包含所需模块的虚拟环境。这是一种更好的开发实践。

此外,您可以使用--exclude-module标志列出要排除的所有模块。 (Pyinstaller automatically includes unneeded modules