You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅引入pandas的read_excel()模块以减小exe打包体积?

解决pandas read_excel打包exe体积过大的问题

方案一:替换为轻量Excel读取库

pandas的read_excel依赖大量底层模块(如numpy、pandas核心组件等),打包时会被全部引入。改用仅专注于Excel读取的轻量库,能大幅缩减exe体积:

  • 读取.xlsx文件:使用openpyxl
  • 读取.xls文件:使用xlrd(注意xlrd 2.0+版本不再支持xlsx格式,需安装旧版xlrd==1.2.0)

示例代码(openpyxl读取xlsx):

from openpyxl import load_workbook

# 加载工作簿,data_only=True直接读取单元格值而非公式
wb = load_workbook("your_file.xlsx", data_only=True)
# 获取活动工作表
ws = wb.active

# 读取所有行数据并转为列表
data = []
for row in ws.iter_rows(values_only=True):
    data.append(row)

# 后续数据处理逻辑

打包时仅需包含openpyxl,最终exe体积通常可控制在几十MB内。

方案二:优化PyInstaller打包配置

若坚持使用pandas,可通过PyInstaller的参数排除不必要的模块,减少打包体积:

  1. 用--exclude-module排除明确不需要的模块(注意不要误删依赖组件)
  2. 用--onefile生成单文件exe(可选,但会增加启动时间)

示例命令:

pyinstaller --onefile --exclude-module matplotlib --exclude-module seaborn --exclude-module pandas.plotting your_script.py

注:pandas读取Excel依赖openpyxl或xlrd,需确保这些模块被正确包含,必要时用--hidden-import手动指定。

方案三:使用最小化conda环境打包

创建仅包含必要依赖的conda环境,避免全局环境中的冗余库被打包:

  1. 创建最小环境:
conda create -n excel_env python=3.10 pandas openpyxl -y
  1. 激活环境:
conda activate excel_env
  1. 在该环境下执行打包命令:
pyinstaller --onefile your_script.py

这种方式能过滤掉系统中其他无关库,比在全局环境打包的体积更小。


内容的提问来源于stack exchange,提问作者Murat Çağrı Güney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:01:04