VS Code中出现File not found error但Python IDLE可正常运行的解决方法
解决VS Code中Tkinter无法找到图片文件但IDLE可运行的问题
问题根源是VS Code和IDLE的默认工作目录不一致:IDLE运行脚本时,会自动把脚本所在文件夹作为当前工作目录;而VS Code默认可能以项目根目录或者你打开的文件夹作为工作目录,导致代码里的相对路径找不到图片文件。
下面是三种可行的解决办法:
使用绝对路径直接指定
把图片的完整路径写进代码,注意在Windows路径前加r避免转义字符问题:root_icon = PhotoImage(file=r"d:\New coding folder\Python projects\canvas\start_point1.png")动态拼接脚本所在目录的路径(推荐)
用os模块获取脚本的绝对路径,再拼接图片文件名,这样不管在哪运行都能找到文件:from tkinter import * import os # 获取当前脚本所在文件夹的绝对路径 script_folder = os.path.dirname(os.path.abspath(__file__)) # 拼接图片的完整路径 image_full_path = os.path.join(script_folder, "start_point1.png") root = Tk() root_icon = PhotoImage(file=image_full_path) root.iconphoto(False, root_icon) # 后续代码保持不变...修改VS Code的工作目录
两种方式:- 打开VS Code终端,手动切换到脚本所在文件夹再运行:
cd d:\New coding folder\Python projects\canvas python main.py - 配置launch.json,让VS Code运行时自动以脚本所在文件夹为工作目录:
在项目的.vscode/launch.json中添加或修改配置:{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "cwd": "${fileDirname}" } ] }
- 打开VS Code终端,手动切换到脚本所在文件夹再运行:
内容的提问来源于stack exchange,提问作者LAKSHYA SINGH CHAUHAN
相关产品推荐
相关产品推荐

