PyInstaller:无法排除模块

The*_*r23 3 python pyinstaller

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

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

让我们从头开始……通常我在 cmd 上做:

cd myFolder
C:\Python27\Scripts\Pyinstaller.exe MyFile.py 
Run Code Online (Sandbox Code Playgroud)

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

如果我想设置一些配置,哪个是正确的方法?

C:\Python27\Scripts\Pyinstaller.exe MyFile.py Config.py
Run Code Online (Sandbox Code Playgroud)

或者

C:\Python27\Scripts\Pyinstaller.exe Config.py
Run Code Online (Sandbox Code Playgroud)

因为在网上我找到了它们,但我无法区分。

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

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)
Run Code Online (Sandbox Code Playgroud)

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

Tia*_*ica 5

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

此外,您可以使用--exclude-moduleflag 列出要排除的所有模块。(Pyinstaller 自动包含不需要的模块