Large file size after building pyqt to exe with pyinstaller(使用 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.
这篇关于使用 pyinstaller 将 pyqt 构建为 exe 后文件大小较大的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 pyinstaller 将 pyqt 构建为 exe 后文件大小较大


- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01