使用图片作为页面背景时遇FileNotFoundError问题求助
解决FileNotFoundError: [Errno 2] No such file or directory问题
错误核心分析
报错提示找不到image1.jpg,但你的代码中尝试打开的是image1.png,同时要注意:Python默认会在脚本运行的当前工作目录下查找文件,而非脚本本身所在的目录。
具体解决步骤
核对文件名与位置
- 确认实际图片文件的完整名称(包括扩展名:
.jpg/.png),将代码中的文件名修改为完全匹配的内容(注意大小写,Linux/macOS环境下文件名区分大小写)。 - 确保图片文件和你的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
相关产品推荐
相关产品推荐

