PyInstaller打包Python脚本为exe运行时报Permission denied错误怎么解决
Excel处理工具PermissionError报错解决方案
核心报错PermissionError: [Errno 13] Permission denied本质是程序写入指定路径时被系统权限拦截,可按以下优先级排查解决:
- 补全完整输出文件路径
你当前输入的C:/Users/XinDong/Documents/UT Calculate是文件夹路径,而pandas ExcelWriter写入要求指定带.xlsx/.xls后缀的完整文件路径,比如需要输出名为计算结果.xlsx的文件时,应将输出路径补全为C:/Users/XinDong/Documents/UT Calculate/计算结果.xlsx,直接向文件夹路径写入文件必然触发权限报错。 - 排查目标文件占用
如果补全路径后仍报错,请确认你要写入的同名Excel文件是否处于打开状态,Office/WPS打开Excel时会加独占锁禁止其他程序写入,关闭该文件后重试即可。 - 确认文件夹写入权限
右键点击C:/Users/XinDong/Documents/UT Calculate文件夹,选择「属性-安全」,确认当前Windows账号对该文件夹有「写入」权限,权限不足时可手动添加权限,或更换输出路径到桌面、非系统盘等无权限限制的路径测试。 - 提升exe运行权限
PyInstaller打包的exe默认以普通用户权限运行,若需要写入系统保护路径,可右键点击exe文件,选择「以管理员身份运行」后再输入参数操作。 - 代码层面增加路径校验逻辑
可在脚本中提前处理路径异常,避免直接触发系统报错,参考代码如下:
import os # 假设output_path是UI输入的输出路径 if os.path.isdir(output_path): # 输入为文件夹时自动补全默认输出文件名 output_path = os.path.join(output_path, "计算结果.xlsx") # 自动创建不存在的上级目录 parent_dir = os.path.dirname(output_path) if not os.path.exists(parent_dir): os.makedirs(parent_dir)
内容的提问来源于stack exchange,提问作者Rachel Dong
相关产品推荐
相关产品推荐

