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 后文件大小较大
基础教程推荐
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 筛选NumPy数组 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01