Pyinstaller onefile可执行的巨大而缓慢

时间:2019-02-24 16:32:41

标签: python matplotlib pyinstaller matplotlib-widget

我知道我不是第一个问我的人,但是论坛上的其他答案都帮不了我,所以我在问。我有一个简短的(181行)python脚本,只包含导入

import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider, RadioButtons

,并运行带有滑块和单选按钮的交互式数学工具。但是,当我使用pyinstaller构建它时,最终得到了一个巨大的(90 MB)dist文件夹,其中似乎包含各种不必要的软件包,例如babel和cryptography。内部可执行文件大约需要5秒钟左右才能真正显示该图形。当我使用--onefile选项运行它时,情况似乎并没有改善,因为我得到了一个43 MB的可执行文件,它需要更长的时间(大约10秒)来显示图形。

我很确定这不是脚本的错,因为在Spyder中,打开它只需不到一秒钟的时间。我怀疑这是因为所有无关的软件包。如果是这样,我如何让pyinstaller排除它们,如果没有,那么可能的问题是什么?谢谢。

编辑:另外,我正在conda虚拟环境中做所有这些事情,我读过某个地方应该已经有助于使pyinstaller的可执行文件更小。创建环境后,我直接安装的唯一软件包是pyinstaller,spyder,numpy和matplotlib。

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为在创建可执行文件时,您也在使用这些库,我所做的只是导入程序所需的内容,然后编译它,例如,对于Tkinter中的应用程序:

from tkinter import Tk, Label
root = Tk()
Label(root, text='Label').pack()
root.mainloop()