3

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

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

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

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

编辑:另外,我在 conda 虚拟环境中执行所有这些操作,我在某处读到的内容应该已经有助于使 pyinstaller 的可执行文件更小。创建环境后,我直接安装的包只有pyinstaller、spyder、numpy和matplotlib。

4

1 回答 1

1

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

from tkinter import Tk, Label
root = Tk()
Label(root, text='Label').pack()
root.mainloop()
于 2020-12-16T19:24:32.213 回答