生成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的依赖,两种处理方式:
- 在代码开头添加
import xlsxwriter,让PyInstaller扫描到该依赖 - 打包时使用命令:
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
相关产品推荐
相关产品推荐

