问题描述
以下代码是我在pyqt小部件中使用的模块,但是在我使用pyinstaller构建exe文件后,文件大小为233MB.
The following code is the module I used in my pyqt widget, but after I use pyinstaller to build exe file, the file size is 233MB large.
如何减小文件大小?
我尝试创建一个新的虚拟环境,但没有任何改善,我也尝试在我的pyinstaller spec<中添加excludes=['mkl','whl']/code> 文件,但也没有改进.
I tried to create a new virtual environment, but there is no improvement, and I also tried to add excludes=['mkl','whl'] in my pyinstaller spec file, but no improve as well.
from PyQt5.QtWidgets import QMainWindow, QMessageBox, QApplication, QFileDialog from PyQt5.QtGui import QIcon, QPixmap from PyQt5.QtCore import Qt, pyqtSignal, QEvent import sys from glob import glob from numpy import array as nparray from PIL.Image import open as imopen from win32gui import GetWindowText, GetForegroundWindow from MainWindow import Ui_MainWindow, resource_path from qimage2ndarray import array2qimage from shutil import move from os import makedirs, chdir, getcwd from os import path as ospath
MainWindow是我用qtdesigner构建的UI代码,它使用的模块是:
MainWindow is the UI code I build with qtdesigner, the module it use is :
from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QStatusBar from PyQt5.QtCore import QRect, Qt, QSize, QMetaObject, QCoreApplication from PyQt5.QtGui import QFont, QIcon, QPixmap import sys from os.path import join, abspath
推荐答案
最后我通过提供的解决方案将我的 exe 文件大小从 233MB 减少到 64MB 这里 :
Finally I reduce my exe file size from 233MB to 64MB by solution provided here :
- 新建conda环境pyinstaller-env
- 使用 conda install conda-forge::numpy "blas=*=openblas" 安装 numpy
- 将环境切换到 pyinstaller-env 并打包我的 QT 应用程序.
- Create a new conda environment pyinstaller-env
- install numpy with conda install conda-forge::numpy "blas=*=openblas"
- Switch environment to pyinstaller-env and package my QT application.