You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python打包为exe后出现图片读取失败(权限/路径)问题求助

问题原因分析

1. 路径拼接的直接错误

你代码里拼接的路径是os.path.join(script_dir, "Agents", "start.png"),但你描述的文件夹结构中图片存放在img_folder下,而非Agents文件夹——这是最直观的路径不匹配问题,直接导致未打包状态下都可能找不到文件。

注:你描述的文件夹结构MAIN_FOLDER > img_folder > start.png > script.py存在逻辑问题,推测实际应为MAIN_FOLDER下同时包含img_folder和script.py,img_folder内放置start.png。

2. 打包后的路径环境变化

即使修正了文件夹名称,打包成.exe后仍可能报错,原因是:

  • 未打包时,os.path.abspath(__file__)指向你的script.py实际路径,script_dir就是MAIN_FOLDER的路径,拼接img_folder/start.png能正确定位文件。
  • 打包为exe后,程序会在系统临时目录(如C:\Users\[用户名]\AppData\Local\Temp\_MEIxxxxxx)运行,__file__指向临时目录里的脚本副本。如果打包工具没有将img_folder作为资源一同打包进去,临时目录里就没有这个文件夹和图片,自然会触发“文件缺失”错误。

3. 其他可能性(概率较低)

如果路径和打包配置都没问题,再排查以下点:

  • 图片文件名/文件夹名是否有拼写错误(注意大小写,部分打包工具对大小写敏感)。
  • 图片文件是否损坏,或格式并非标准PNG(比如后缀是.png但实际是JPG)。
  • 运行exe时的权限问题,比如在Program Files这类受系统保护的目录运行,导致程序无法读取文件。

快速验证建议

  1. 先修正代码中的路径:将"Agents"替换为"img_folder",运行未打包的脚本,确认能正常读取图片。
  2. 检查打包工具的资源配置:以PyInstaller为例,需要添加--add-data参数,命令格式类似:
    pyinstaller --add-data "img_folder;img_folder" script.py
    
    确保img_folder被包含到打包后的程序资源中。

内容的提问来源于stack exchange,提问作者Lucca hp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:06:09