精简py2exe和matplotlib

4 投票
1 回答
1551 浏览
提问于 2025-04-16 11:59

我现在正在开发一个应用程序,使用py2exe把一些Python代码变成exe文件,这段代码用到了matplotlib。整体运行得不错,但我的可执行文件太大了。运行下面的转换脚本后,生成的包有43.5MB(包括exe文件和它的依赖项)。我知道可能有一些方法可以减小我这个应用程序的大小。

有没有什么建议可以帮助我减小应用程序的体积?

我的转换脚本:

from distutils.core import setup
import py2exe
import matplotlib

setup(


windows=[{'script': r'ElectronOrbitalGenerator.py'}],

data_files=matplotlib.get_py2exe_datafiles(),

options={r'py2exe':{r'includes': r'ElementConfig',
                    r'includes': r'ColorConv',
                    r'includes': r'Tkinter',
                    r'includes': r're',
                    r'includes': r'math',
                    r'includes': r'sys',
                    r'includes': r'matplotlib',
                    r'includes': r'mpl_toolkits',
                    r'dll_excludes': [r'MSVCP90.dll'],
                    }},


)

这是我程序运行所需的所有模块:

import ElementConfig, ColorConv

import Tkinter, re, math, sys

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import  Axes3D
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure

1 个回答

6

如果你只是用matplotlib来显示一些图表,使用默认的字体什么的,你可以在dist/mpl-data文件夹里,把除了matplotlib.conf和matplotlibrc以外的其他文件都删掉。

我这样做后,节省了大约4MB的空间,从12MB减少到了8MB。

你说你的文件夹有43.5MB,可能并不是全部都是matplotlib造成的……

撰写回答