我有一个简单的 pandas pyinstaller exe,它超过 40MB。
我的exe示例:
import collections
import csv
import selenium
import pandas
print('hi')
40MB+ 对于这个来说似乎有点过分了。
如何尽可能减少这种情况?
一种方法:
pyinstaller --onefile --exclude matplotlib --exclude scipy --exclude pandas --exclude numpy.py
然而,考虑到排除列表有多大,这是不切实际的。
如何为 pyinstaller 选择一个文件夹来从中获取模块并排除其他所有内容,以便我可以拥有一个小型应用程序?
规范文件:
a = Analysis(['123.py'],
pathex=['C:\\Users\\AA\\ZZ'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='123',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
还有一点值得一提。默认情况下,Pyinstaller 不检测 pandas。
添加:
hiddenimports = ['pandas._libs.tslibs.timedeltas']
To: C:\Users\<NAME>\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks
可能的solution当使用多个可执行文件时,可以将每个可执行文件链接到一个单独的文件夹或具有所有导入的可执行文件。
最佳答案
尝试使用 virtualenv 设置环境,并仅在其中安装所需的库
有关使用虚拟环境的一些详细信息如下:https://virtualenv.pypa.io/en/stable/
关于python - 减少 pyinstaller exe 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257108/