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

生成exe文件后无法写入Excel文件的技术求助

PyInstaller打包pandas Excel写入代码后执行异常问题

在Jupyter Notebook中编写的pandas生成DataFrame并写入Excel的代码运行完全正常,但通过jupyter nbconvert --to script test1.ipynb转为.py文件,再用pyinstaller test1.py打包成exe后,运行exe时控制台仅显示Writing excel file就关闭,后续代码无法执行。

用户代码如下:

import pandas as pd
import time
from datetime import datetime
import os
  
PATH="C:\\Users\\ankit19.gupta\\Desktop\\test1"
data = [['Ankit', 28], ['Akshat', 28]]
data = pd.DataFrame(data, columns=['Name', 'Age'])
os.chdir("C://Users//ankit19.gupta//Desktop//test1")
print(os.getcwd())
PATH="C:\\Users\\ankit19.gupta\\Desktop\\test1"
xlsx_file1 = str(datetime.now().strftime('%d_%m_%Y_')) + 'Test' + '.xlsx'
out_path1 = PATH+ "/Generated_Data/"+xlsx_file1
   
print("Writing excel file") # Till now code is executed successfully
   
writer1 = pd.ExcelWriter(out_path1, engine='xlsxwriter') 
   
print("Used ExcelWriter") # Don't get this print statement  

data.to_excel(writer1,index=False)
print("File is written")
writer1.save()
print("Completed")

解决步骤

  • 检查并创建目标目录:代码中Generated_Data目录可能不存在,exe运行时因无法写入不存在的目录报错。在生成输出路径前添加目录判断:
    # 确保Generated_Data目录存在
    output_dir = os.path.join(PATH, "Generated_Data")
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
  • 显式打包xlsxwriter依赖:PyInstaller可能未自动识别xlsxwriter的依赖,两种处理方式:
    1. 在代码开头添加import xlsxwriter,让PyInstaller扫描到该依赖
    2. 打包时使用命令:pyinstaller --hidden-import xlsxwriter test1.py
  • 添加异常捕获查看错误:为了避免控制台直接关闭,添加异常捕获并让窗口停留:
    try:
        writer1 = pd.ExcelWriter(out_path1, engine='xlsxwriter') 
        print("Used ExcelWriter")
        data.to_excel(writer1, index=False)
        print("File is written")
        writer1.save()
        print("Completed")
    except Exception as e:
        print(f"错误信息: {str(e)}")
        input("按回车键退出...") # 保持控制台打开,查看错误
    
  • 规范路径拼接方式:使用os.path.join统一拼接路径,避免因分隔符混用导致的路径错误:
    out_path1 = os.path.join(PATH, "Generated_Data", xlsx_file1)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:48:22