使用 pyinstaller 将 pyqt 构建为 exe 后文件大小较大
问题描述
以下代码是我在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"
安装 - 将环境切换到
pyinstaller-env
并打包我的 QT 应用程序.
numpy
- Create a new conda environment
pyinstaller-env
- install
numpy
withconda install conda-forge::numpy "blas=*=openblas"
- Switch environment to
pyinstaller-env
and package my QT application.
相关文章