Python AttributeError: 'NoneType' object has no attribute 'shape'

Python AttributeError: 'NoneType' object has no attribute 'shape'

我在 cselect 文件夹中有一个名为 negative.py 的文件。为什么我用的路径是

vs code 会报错
image = cv.imread('images/tooth.jpeg')
height, width, channels = image.shape

错误:

Traceback (most recent call last):
  File "d:\Users\iveej\Desktop\cs\python\cselect\negative.py", line 7, in <module>
    height, width, channels = image.shape
AttributeError: 'NoneType' object has no attribute 'shape'

但是当我将路径更改为:

image = cv.imread('D:\Users\iveej\Desktop\cs\python\cselect\images\tooth.jpeg')

它正在工作。

两者都适用于 Pycharm 但不适用于 vs 代码。这是为什么?感谢您提前回答。

这是一个路径问题。 运行在 VS Code 中运行脚本时,当前活动文件夹 不会更改为脚本所在的文件夹 运行。相对路径是相对于当前活动文件夹,而不是脚本所在的文件夹。(这可能是您的项目根目录)。

您可以 -

  1. 使用绝对路径
  2. 配置 VS Code 以将执行文件夹设置为与脚本相同的文件夹
  3. 修改相对于 VS Code 执行文件夹的路径,或者
  4. 当您的脚本是 运行
  5. 时更改活动文件夹

对于 4,你可以做类似 --

import os

path = os.path.dirname(os.path.abspath(__file__))
os.chdir(path)

这会将当前的原始文件夹更改为包含脚本的文件夹。