YOLOv5 2025-6-5 torch 2.6.0+cu126 CUDA:0 (NVIDIA GeForce RTX 2060, 6144MiB) YOLOv5 2025-6-5 torch 2.6.0+cu126 CUDA:0 (NVIDIA GeForce RTX 2060, 6144MiB) Traceback (most recent call last): File "D:\custom\nongjiyuan\QtProject\src\process_image.py", line 155, in <module> main() File "D:\custom\nongjiyuan\QtProject\src\process_image.py", line 152, in main process.process_image(img, True, False, model_path_2, model2_data) File "D:\custom\nongjiyuan\QtProject\src\process_image.py", line 77, in process_image run( File "D:\software\anaconda3\envs\nongjiyuan\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "D:\custom\nongjiyuan\QtProject\damage_detect\detect.py", line 97, in run model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\custom\nongjiyuan\QtProject\damage_detect\models\common.py", line 589, in __init__ model = attempt_load(weights if isinstance(weights, list) else w, map_location=device) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\custom\nongjiyuan\QtProject\damage_detect\models\experimental.py", line 96, in attempt_load ckpt = torch.load(attempt_download(w), map_location=map_location, weights_only=False) # load ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\software\anaconda3\envs\nongjiyuan\Lib\site-packages\torch\serialization.py", line 1471, in load return _load( ^^^^^^ File "D:\software\anaconda3\envs\nongjiyuan\Lib\site-packages\torch\serialization.py", line 1964, in _load result = unpickler.load() ^^^^^^^^^^^^^^^^ File "D:\software\anaconda3\envs\nongjiyuan\Lib\site-packages\torch\serialization.py", line 1953, in find_class return super().find_class(mod_name, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'ultralytics'
时间: 2025-06-11 10:32:21 浏览: 21
### 解决YOLOv5与PyTorch 2.6.0中`ModuleNotFoundError: No module named 'ultralytics'`的问题
在使用YOLOv5和PyTorch 2.6.0时,如果遇到`ModuleNotFoundError: No module named 'ultralytics'`错误,通常是因为未正确安装或配置`ultralytics`模块。以下是详细的解决方案[^1]。
#### 1. 确保`ultralytics`模块已正确安装
`ultralytics`是YOLOv5的官方支持库之一,负责提供模型加载、训练和推理等功能。可以通过以下命令安装该模块:
```bash
pip install ultralytics
```
如果环境中已经存在旧版本的YOLOv5或其他相关依赖,建议先卸载并重新安装以避免冲突:
```bash
pip uninstall yolov5 ultralytics
pip install ultralytics
```
#### 2. 验证安装是否成功
安装完成后,可以通过以下Python代码验证`ultralytics`模块是否可以正常导入:
```python
import ultralytics
print(ultralytics.__version__)
```
如果能够成功打印出版本号,则说明模块安装正确。
#### 3. 检查环境配置
确保当前使用的Python环境与安装`ultralytics`的环境一致。可以通过以下命令检查当前环境的Python路径:
```bash
which python
```
同时,确认`ultralytics`模块安装在正确的环境中。如果使用的是虚拟环境,请激活对应的环境后再进行安装和测试。
#### 4. 修改模型加载方式以兼容PyTorch 2.6.0
在PyTorch 2.6.0中,默认启用了`weights_only=True`的安全机制,这可能导致某些模型加载失败。为解决这一问题,可以在加载模型时显式设置`weights_only=False`,或者将`DetectionModel`类添加到允许列表中。以下是两种实现方式:
**方法一:修改`weights_only`参数**
```python
import torch
# 加载自定义模型时设置 weights_only=False
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt', force_reload=True, skip_validation=True, weights_only=False)
```
**方法二:将`DetectionModel`添加到允许列表**
```python
from ultralytics.nn.tasks import DetectionModel
import torch
# 将 DetectionModel 添加到允许列表
torch.serialization.add_safe_globals(DetectionModel)
# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt', force_reload=True)
```
#### 5. 兼容性检查
确保YOLOv5版本与PyTorch 2.6.0兼容。如果使用的是较旧版本的YOLOv5,可能需要升级到最新版本。可以通过以下命令更新YOLOv5:
```bash
pip install -U ultralytics
```
#### 示例代码
以下是一个完整的示例代码,展示如何正确加载YOLOv5模型并处理`ModuleNotFoundError`问题:
```python
import ultralytics
from ultralytics.nn.tasks import DetectionModel
import torch
# 添加 DetectionModel 到允许列表
torch.serialization.add_safe_globals(DetectionModel)
# 加载自定义模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt', force_reload=True, skip_validation=True, weights_only=False)
# 测试模型
results = model('path/to/image.jpg')
results.print()
```
通过上述方法,可以有效解决在PyTorch 2.6.0中加载YOLOv5模型时遇到的`ModuleNotFoundError: No module named 'ultralytics'`问题[^1]。
阅读全文
相关推荐

















