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

Tkinter使用PhotoImage加载image.jpg报错找不到文件是什么原因?

报错原因

这个报错是两个层面的问题共同导致的:

  1. 程序找不到指定路径下的image.jpg文件:你当前运行的脚本路径是C:\Users\USER-DAF005\PycharmProjects\Background_test\main.py,默认运行时的工作目录就是脚本所在的Background_test文件夹,你没有把image.jpg放在该文件夹下,或者文件名/后缀和你代码里写的不一致(比如系统隐藏了后缀,实际文件名为image.jpg.jpeg)。
  2. 原生Tkinter的PhotoImage组件本身不支持JPG格式的图片,就算你文件路径放对了,后续也会抛出格式不兼容的报错,它仅原生支持PNG、GIF、PPM/PGM这类格式。
    另外你现有代码里my_canvas.create_image(0, 0)漏了传入image参数,后续就算路径和格式都对,图片也不会显示。
解决方案
  • 首先处理路径问题,二选一即可:
    • 把你的图片文件放到C:\Users\USER-DAF005\PycharmProjects\Background_test\目录下,和main.py同目录
    • 直接在代码里写文件的绝对路径,注意路径里用正斜杠/或者双反斜杠\\,不要用单个反斜杠,示例:file="C:/Users/USER-DAF005/Desktop/image.jpg"
  • 然后处理图片格式问题,二选一即可:
    1. 不用额外安装库:把你的image.jpg转成PNG或者GIF格式,修改对应代码即可,修改后的完整代码示例:
from tkinter import *

root = Tk()
root.title('TEST')
root.iconbitmap("logo.ico")
root.geometry("1008x720")

# 注意这里文件名改成你转格式后的文件名,比如image.png
bg = PhotoImage(file="image.png")

my_canvas = Canvas(root, width=1080, height=720)
my_canvas.pack(fill="both", expand=True)

# 加上image参数指定图片,anchor=nw表示以左上角为坐标原点对齐
my_canvas.create_image(0, 0, image=bg, anchor="nw")

root.mainloop()
  1. 要直接使用JPG格式:先安装Pillow库处理图片,运行命令pip install pillow,再修改代码为如下版本即可:
from tkinter import *
from PIL import Image, ImageTk

root = Tk()
root.title('TEST')
root.iconbitmap("logo.ico")
root.geometry("1008x720")

# 加载JPG图片
bg_image = Image.open("image.jpg")
bg = ImageTk.PhotoImage(bg_image)

my_canvas = Canvas(root, width=1080, height=720)
my_canvas.pack(fill="both", expand=True)

my_canvas.create_image(0, 0, image=bg, anchor="nw")

root.mainloop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 11:54:04