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

VS Code调用cv.imread用相对路径报NoneType无shape属性错误是什么原因?

错误根本原因
  • 相对路径的解析依赖程序运行时的当前工作目录(CWD),而非脚本文件本身的存储路径。你使用的images/tooth.jpeg相对路径,只有运行时CWD为d:\Users\iveej\Desktop\cs\python\cselect时才能正确定位到文件,否则cv.imread找不到资源会返回None,调用shape属性时就会触发AttributeError。
  • VS Code与PyCharm的默认CWD规则不同:PyCharm运行Python脚本时默认将脚本所在目录设为CWD,因此相对路径可以正常生效;VS Code默认CWD为你打开的工作区根目录,如果你打开的工作区不是cselect文件夹,而是更上层的目录,相对路径拼接后的结果就会错误,导致找不到文件。
  • 你可以在代码开头添加import os; print(os.getcwd())打印运行时CWD,验证是否和negative.py所在目录一致。
修复方案
  • 调整VS Code Python运行配置:打开项目下的.vscode/launch.json文件,在对应运行配置中添加"cwd": "${fileDirname}",即可让VS Code运行脚本时自动将脚本所在目录设为CWD,和PyCharm行为保持一致。
  • 代码层面规避CWD差异:通过脚本路径构造绝对路径,不依赖运行环境的CWD设置,示例代码如下:
import os
import cv2 as cv

# 获取当前脚本的绝对目录
script_root = os.path.dirname(os.path.abspath(__file__))
# 拼接得到图片的完整绝对路径
img_path = os.path.join(script_root, "images", "tooth.jpeg")
image = cv.imread(img_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:24:04