遇到的坑二:文件找不到(路径不对),包括配置文件找不到,excel文件找不到等等
2023-07-11 11:24:12
博客园
python打包之后,有一个奇怪的特点,直接说不好说,就结合下面代码来说一说:
代码目录结构如下:
aa.py:
(资料图)
运行结果如下:
直接在Pycharm里运行出来的,路径确实是文件所在路径没有错,excel文件内容页读取到了,万事大吉
然后打包
打包中。。。。。。。
打包好了之后,运行看看
运行结果:
嗯哼?什么情况,路径怎么变成了这样乱七八糟的,不出所料,excel文件也读取不成功了,这也是配置文件。日志文件等别的文件也读取失败的原因,即如果是打包的话,直接用 下面这种获取路径的方法,获取到的路径就会是C:xxx/xxx 就不是真正的路径
1 | os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
解决方法:
如果要获取真正的路径的话,就要用下面方法:获取到真正路径后os.path.realpath(sys.executable), 一层一层上找,找到顶层目录,然后再往下拼接需要的文件路径
self.script_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(sys.executable)))) # 顶层目录 relative_path = os.path.join(self.script_path, "file_log\excel\下载.xls") # 与excel表格路径拼接
将__init__文件中获取路径的代码改成这样,在打包运行试试:
发现没问题了