- demo.py
import os
import sys
from contextlib import contextmanager
from pathlib import Pathimport yaml
from tqdm import tqdmFILE = Path(__file__).resolve()
ROOT = FILE.parents[3] # YOLOv5 root directory
if str(ROOT) not in sys.path:sys.path.append(str(ROOT)) # add ROOT to PATHfrom utils.dataloaders import LoadImagesAndLabels, img2label_paths
from utils.general import LOGGER, check_dataset, check_filetry:import wandbassert hasattr(wandb, "__version__") # verify package import not local dir
except (ImportError, AssertionError):wandb = Noneprint(os, sys, contextmanager, yaml, tqdm, LoadImagesAndLabels, img2label_paths, LOGGER, check_dataset, check_file, wandb)
执行命令:ruff check demo.py
报错如下:
demo.py:14:1: E402 Module level import not at top of file|
12 | sys.path.append(str(ROOT)) # add ROOT to PATH
13 |
14 | from utils.dataloaders import LoadImagesAndLabels, img2label_paths| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
15 | from utils.general import LOGGER, check_dataset, check_file|demo.py:15:1: E402 Module level import not at top of file|
14 | from utils.dataloaders import LoadImagesAndLabels, img2label_paths
15 | from utils.general import LOGGER, check_dataset, check_file| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402
16 |
17 | try:|Found 2 errors.
解决:把后面的import放到suppress里
import os
import sys
from contextlib import contextmanager, suppress
from pathlib import Pathimport yaml
from tqdm import tqdmFILE = Path(__file__).resolve()
ROOT = FILE.parents[3] # YOLOv5 root directory
if str(ROOT) not in sys.path:sys.path.append(str(ROOT)) # add ROOT to PATHwith suppress(FutureWarning):from utils.dataloaders import LoadImagesAndLabels, img2label_pathsfrom utils.general import LOGGER, check_dataset, check_filetry:import wandbassert hasattr(wandb, "__version__") # verify package import not local dir
except (ImportError, AssertionError):wandb = Noneprint(os, sys, contextmanager, yaml, tqdm, LoadImagesAndLabels, img2label_paths, LOGGER, check_dataset, check_file, wandb)
前后版本对比如下: