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

使用图片作为页面背景时遇FileNotFoundError问题求助

解决FileNotFoundError: [Errno 2] No such file or directory问题

错误核心分析

报错提示找不到image1.jpg,但你的代码中尝试打开的是image1.png,同时要注意:Python默认会在脚本运行的当前工作目录下查找文件,而非脚本本身所在的目录。

具体解决步骤

  • 核对文件名与位置

    1. 确认实际图片文件的完整名称(包括扩展名:.jpg/.png),将代码中的文件名修改为完全匹配的内容(注意大小写,Linux/macOS环境下文件名区分大小写)。
    2. 确保图片文件和你的Python脚本放在同一个文件夹中;如果不在同目录,需指定正确的路径。
  • 使用绝对路径(快速解决)
    直接写入图片的绝对路径,避免路径解析问题:

    # Windows系统示例
    img1 = ImageTk.PhotoImage(Image.open('C:/你的文件夹路径/image1.png'))
    # macOS/Linux系统示例
    img1 = ImageTk.PhotoImage(Image.open('/你的文件夹路径/image1.png'))
    
  • 动态获取路径(推荐,适配性强)
    通过代码自动获取脚本所在目录,再拼接图片路径,避免硬编码路径的局限性:

    import os
    from PIL import ImageTk, Image
    import tkinter
    import customtkinter
    
    customtkinter.set_appearance_mode("System")
    customtkinter.set_default_color_theme("green")
    
    app = customtkinter.CTk()
    app.geometry("600x440")
    app.title("Login")
    
    # 获取脚本所在目录的绝对路径
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接图片的完整路径
    img_full_path = os.path.join(script_dir, "image1.png")
    img1 = ImageTk.PhotoImage(Image.open(img_full_path))
    
    l1 = customtkinter.CTkLabel(master=app, image=img1)
    l1.pack()
    # 保留图片对象引用,防止被垃圾回收导致图片不显示
    l1.image = img1
     
    app.mainloop()
    

内容的提问来源于stack exchange,提问作者Craig Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:30:13