使用pyinstaller时生成的.exe文件过大。

11

我对这个问题做了一些搜索,人们抱怨可执行文件大小为30mb ~ 100mb,但出于某种原因,我的文件大小是300mb。我可能错了,但我认为这不正常。我尝试使用其他替代方案,比如cx_Freeze,但结果相同。这是我的项目中包含的内容:

from PyQt5 import QtCore, QtGui, QtWidgets
from pyplot import functions as plot
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(window)
    window.show()
    sys.exit(app.exec_())

pyplot是我项目中的另一个Python文件,其中包括:

from numpy import power, cbrt, sin, cos, arange
from matplotlib import pyplot as plt
from matplotlib import patches as pts
from scipy import integrate as intg

我使用这个命令来创建我的可执行文件:

pyinstaller --onefile --windowed montecarlo.py

感谢您的帮助


3
PyQt5, numpy, scipy, mathplotlib是计算机编程领域常用的库,分别用于图形用户界面开发、科学计算、数据分析和可视化等方面。预计结果会比较庞大。 - Klaus D.
3
Qt、matplotlib、numpy 和 scipy 可能是你在 Python 程序中导入的最大的包,我并不 那么 惊讶可执行文件变得很大。 - Matteo Italia
1
你所import的所有内容都会被打包进可执行文件中,因此导入的包越大,最终程序的大小就越大。 - ForceBru
@JoranBeasley:我不会那么肯定,我们使用PyInstaller发布的大多数PyQt应用程序(通常包括QtCore、QtGui、QtWidgets)都不到30 MB。 - Matteo Italia
1
尝试使用--onedir选项进行构建,并查看与你的.exe文件捆绑的包。这将告诉你哪些是最大的,你可能会识别出一些可以从构建中排除的包。 - Repiklis
显示剩余3条评论
1个回答

3

这是正常的,因为您导入的包具有一些较大的传递依赖关系。

要量化每个包的贡献,只需注释掉所有导入项,运行pyinstaller,然后逐个添加它们,记录每次添加后pyinstaller输出的大小。然而,在统计数据中,您可能不会找到任何行动项,因为您的应用程序需要这些导入项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接