最近在用python写一个统计数据的脚本,大致实现是把需要统计的数据放到脚本目录,直接运行脚本就可以统计数据并生成报表。写完后发现直接运行脚本可以正常执行,打成exe包后提示找不到excel文件

从错误提示看是脚本执行的路径下找不到excel文件,看代码应该是这行执行报错了
原始代码如下
time_start=datetime.datetime.now()
#使用sys.path[0]获取当前路径
order = load_workbook(sys.path[0]+r'\***.xlsx')
添加路径打印
#增加路径打印
print(sys.path[0])
order = load_workbook(sys.path[0]+r'\***.xlsx')
直接运行脚本
![]()
打包成exe后
![]()
从这里可以看出打包成exe后获取的路径不是exe文件的路径,具体原因还没摸透。规避此问题的方法是在打包exe时,把
sys.path[0] 替换成 os.path.dirname(sys.executable)
sn_wb = load_workboo

在将Python脚本打包成exe后,遇到运行时找不到Excel文件的错误。原因是打包后脚本的执行路径发生了变化。为解决这个问题,可以使用`os.path.abspath()`来获取文件的绝对路径,确保在任何环境下都能正确找到文件。此外,文章介绍了`os.path`模块的多个函数,如`abspath()`, `basename()`, `join()`等,这些函数在处理路径时非常有用。"
103489545,1201153,Unity UniRx:Logger与MessageProxy实践,"['Unity开发', '游戏开发', 'C#编程', 'UniRx框架', '日志系统']

4376

被折叠的 条评论
为什么被折叠?



