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 中运行脚本时,当前活动文件夹 不会更改为脚本所在的文件夹 运行。相对路径是相对于当前活动文件夹,而不是脚本所在的文件夹。(这可能是您的项目根目录)。
您可以 -
- 使用绝对路径
- 配置 VS Code 以将执行文件夹设置为与脚本相同的文件夹
- 修改相对于 VS Code 执行文件夹的路径,或者
- 当您的脚本是 运行
时更改活动文件夹
对于 4,你可以做类似 --
import os
path = os.path.dirname(os.path.abspath(__file__))
os.chdir(path)
这会将当前的原始文件夹更改为包含脚本的文件夹。
我在 cselect 文件夹中有一个名为 negative.py
的文件。为什么我用的路径是
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 中运行脚本时,当前活动文件夹 不会更改为脚本所在的文件夹 运行。相对路径是相对于当前活动文件夹,而不是脚本所在的文件夹。(这可能是您的项目根目录)。
您可以 -
- 使用绝对路径
- 配置 VS Code 以将执行文件夹设置为与脚本相同的文件夹
- 修改相对于 VS Code 执行文件夹的路径,或者
- 当您的脚本是 运行 时更改活动文件夹
对于 4,你可以做类似 --
import os
path = os.path.dirname(os.path.abspath(__file__))
os.chdir(path)
这会将当前的原始文件夹更改为包含脚本的文件夹。