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

Windows11下PyInstaller打包含图片Python项目报错求助

解决PyInstaller打包后无法读取图片的问题

1. 修正PyInstaller打包命令

Windows系统下,PyInstaller的--add-data参数需用**分号;**作为路径分隔符,而非冒号:。建议直接添加整个images文件夹(避免遗漏文件),修改后的命令为:

Python -m PyInstaller --onedir --add-data "images;images/" main.py

2. 修改代码中的路径读取逻辑

打包后程序运行时,数据文件会被放置在PyInstaller生成的临时目录中,不能直接使用硬编码的相对路径。需通过sys._MEIPASS动态获取资源路径:

  1. 在main.py中导入必要模块:
import sys
import os
  1. 添加获取资源路径的函数:
def get_resource_path(relative_path):
    try:
        # 打包后的运行环境,获取临时资源目录
        base_path = sys._MEIPASS
    except Exception:
        # 开发环境,使用当前目录
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)
  1. 替换所有读取图片的硬编码路径:
    比如原来的cv2.imread('images\picture.png')改为:
img_path = get_resource_path('images/picture.png')
img = cv2.imread(img_path)

3. 验证打包结果

重新执行修改后的打包命令,生成exe后,检查dist/main目录下是否存在images文件夹且包含所有需要的PNG图片,运行exe即可正常读取图片。

内容的提问来源于stack exchange,提问作者s.eyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:18:12