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

Python tkinter使用相对路径插入图片无法识别的问题及解决方法

问题根因

报错是因为运行脚本时的工作目录和你当前.py文件所在的目录不一致。VS Code默认以你打开的工作区根文件夹作为运行时的工作目录,直接写hyunju.png会到工作区根目录下找文件,而不是到.py文件所在的同级目录查找,因此触发找不到文件的报错。

可迁移的最优解决方案

用__file__内置变量动态获取当前脚本的所在目录,拼接得到图片的绝对路径,不管项目迁移到什么位置、用什么编辑器运行都能正常识别,不需要修改代码:

import tkinter
import os

# 先获取当前py文件的绝对路径,再提取所在的文件夹路径
current_py_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到图片的完整路径,自动适配Windows、macOS、Linux的路径分隔符
img_full_path = os.path.join(current_py_dir, "hyunju.png")

root = tkinter.Tk()
root.title("tk")
canvas = tkinter.Canvas(root, width=400, height=600)
canvas.pack()
gazou = tkinter.PhotoImage(file=img_full_path)
canvas.create_image(200, 300, image=gazou)
root.mainloop()

不改代码的临时解决方案(仅适配VS Code本地运行)

如果不想修改代码,可以调整VS Code的运行配置,让运行时自动切换到py文件所在目录:

  • 打开VS Code设置页面(快捷键Ctrl+,)
  • 搜索配置项python.terminal.executeInFileDir
  • 勾选该配置项,之后运行py文件时终端会自动切换到文件所在目录,原有相对路径写法即可正常生效

内容的提问来源于stack exchange,提问作者옵저버

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:54:03