修改代码或直接运行时出现报错的原因在于,YOLOv8和YOLOv10的项目结构中自带的ultralytics
文件夹与通过pip install ultralytics
安装的第三方包存在命名冲突。
当在终端中使用yolo
命令进行训练时,系统会默认解析pip
安装的ultralytics
包,而忽略本地项目中的ultralytics
文件夹。这种路径冲突导致了KeyError
等运行错误。
对于YOLOv8,如果你对其中的代码进行了修改(例如添加了自定义模块)并在运行时遇到此类报错,可以尝试以下解决方法:
一、修改源码(较为繁琐)
将项目中已修改的ultralytics
文件夹内的所有文件(例如task.py
等)复制到通过pip install ultralytics
安装的ultralytics
包对应的目录中进行覆盖。完成后再次运行,报错即可解决。
一般位置为site-packages
。
二、不要下载ultralytics
cd转到所在项目,先卸载ultralytics(如果是新环境,没有就不用管这条命令,直接运行下面的)。