【发布时间】:2020-06-02 03:11:04
【问题描述】:
我已经使用 PyQt5 开发了 UI,现在我正在使用 Pyinstaller 将代码转换为独立的应用程序,但问题是文件大小越来越大(接近 250MB)。我可以减小文件的大小,但不包括不必要的 PyQt5 导入。 关注我使用过的库 -
from PyQt5 import QtCore, QtGui, QtWidgets
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
import os,sys
from mat4py import loadmat
from matplotlib import pyplot as plt
PyQt5 库有以下许多子模块(QtCore、QtGui、QtWidgets、QtMultimedia、QtBluetooth、QtNetwork、QtPositioning、Enginio、QtWebSockets、QtWebKit、QtWebKitWidgets、QtXml、QtSvg、QtSql、QtTest),其中我只使用 QtCore、QtGui和 QtWidgets。
同样,我在其中使用 pyplot 的库 matplotlib 许多模块。
我想跳过程序不使用的模块,以便减小可执行文件的大小。
我的pyinstaller规范文件-
import sys
sys.setrecursionlimit(3000)
block_cipher = None
a = Analysis(['ReadMAT.py'],
pathex=['C:\\Users\\Sekhar\\Documents\\PythonScripts\\RXP\\ReadMAT'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='ReadMAT',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False, icon='ReadMAT.ico')
如何跳过不会进入编译过程的子模块。如何减小可执行文件的大小?
【问题讨论】:
标签: python matplotlib pyqt5 pyinstaller