小编Vin*_*Vin的帖子

减少pyinstaller exe的大小

我有一个简单的pandas pyinstaller exe,超过40MB.

我的exe示例:

import collections
import csv
import selenium
import pandas

print('hi')
Run Code Online (Sandbox Code Playgroud)

40MB +这似乎有点矫枉过正.

我怎样才能尽可能减少这个?

一种方法:

pyinstaller --onefile --exclude matplotlib --exclude scipy --exclude pandas --exclude numpy.py
Run Code Online (Sandbox Code Playgroud)

然而,考虑到排除列表的大小,这是不切实际的.

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

这也值得一提.默认情况下,Pyinstaller不会检测到pandas.

加:

hiddenimports = ['pandas._libs.tslibs.timedeltas']

To: C:\Users\<NAME>\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks
Run Code Online (Sandbox Code Playgroud)

使用多个可执行文件时可能的解决方案是将每个可执行文件链接到单独的文件夹或可执行文件以及所有导入.

python selenium pyinstaller pandas selenium-webdriver

27
推荐指数
3
解决办法
2万
查看次数