最新要闻

广告

手机

英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌

英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌

宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选

宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选

家电

遇到的坑二:文件找不到(路径不对),包括配置文件找不到,excel文件找不到等等

来源:博客园

python打包之后,有一个奇怪的特点,直接说不好说,就结合下面代码来说一说:

代码目录结构如下:


(资料图片)

aa.py:

运行结果如下:

直接在Pycharm里运行出来的,路径确实是文件所在路径没有错,excel文件内容页读取到了,万事大吉

然后打包

打包中。。。。。。。

打包好了之后,运行看看

运行结果:

嗯哼?什么情况,路径怎么变成了这样乱七八糟的,不出所料,excel文件也读取不成功了,这也是配置文件。日志文件等别的文件也读取失败的原因,即如果是打包的话,直接用 下面这种获取路径的方法,获取到的路径就会是C:xxx/xxx 就不是真正的路径

1os.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__文件中获取路径的代码改成这样,在打包运行试试:

发现没问题了

关键词: