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

如何将含Pandas .read_excel、绑定静态Excel的Python脚本打包为exe

实现方案

你可以用PyInstaller完成脚本+静态资源的单exe打包,全程不需要用户额外安装Python或手动存放静态参考文件,步骤如下:


第一步:修改脚本的静态文件读取逻辑

打包后的exe运行时会把内置资源解压到系统临时目录,不能直接用原相对路径读取静态Excel,需要先新增资源路径适配函数,修改后的代码示例:

import os
import sys
import pandas as pd

def get_resource_path(relative_path):
    # 兼容打包运行环境和本地开发环境的路径
    if getattr(sys, 'frozen', False):
        # exe运行时的临时资源目录
        base_path = sys._MEIPASS
    else:
        # 本地开发时的脚本根目录
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# 动态Excel的目录可按需调整,比如默认读取exe同目录的input文件夹,或运行时让用户输入路径
dynamic_excel_path = "指定的动态Excel存放目录"
os.chdir(dynamic_excel_path)

# 读取内置的静态参考Excel
reference = pd.read_excel(get_resource_path("static_excel.xlsx"), sheet_name='1')

for file in os.listdir(dynamic_excel_path):
    # 原有数据处理逻辑保持不变即可
    pass

第二步:执行打包命令

首先确保你本地已经安装PyInstaller和脚本依赖(比如读Excel需要的openpyxl等),然后在脚本所在目录执行命令:

  • Windows系统:
    pyinstaller -F --add-data "static_excel.xlsx;." 你的脚本名.py
  • Mac/Linux系统:
    pyinstaller -F --add-data "static_excel.xlsx:." 你的脚本名.py

参数说明:

  • -F 表示打包为单个独立exe文件
  • --add-data 用于指定要内置到exe的静态资源,后面的;./:.表示资源在临时目录的存放根路径,和第一步的路径函数适配

第三步:分发使用

打包完成后,生成的exe文件存放在项目目录下的dist文件夹中,直接把这个exe发给用户即可。用户运行时只需把要处理的动态Excel放到你指定的目录,不需要额外安装任何环境,也不需要单独存放静态参考文件。


注意事项

  • 如果有多个静态资源需要内置,重复添加--add-data参数即可,也可以用通配符批量添加同类型文件
  • 建议在干净的虚拟环境中打包,避免引入多余依赖导致exe体积过大
  • 若运行exe时提示缺少依赖,可在打包命令中添加--hidden-import 缺失的模块名补全依赖,比如pandas读Excel缺失openpyxl时,添加--hidden-import openpyxl即可

内容的提问来源于stack exchange,提问作者Issac Wu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:18:04