- demo.py
import os
import sys
from contextlib import contextmanager
from pathlib import Path
import yaml
from tqdm import tqdm
FILE = 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 PATH
from utils.dataloaders import LoadImagesAndLabels, img2label_paths
from utils.general import LOGGER, check_dataset, check_file
try:
import wandb
assert hasattr(wandb, "__version__") # verify package import not local dir
except (ImportError, AssertionError):
wandb = None
print(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 Path
import yaml
from tqdm import tqdm
FILE = 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 PATH
with suppress(FutureWarning):
from utils.dataloaders import LoadImagesAndLabels, img2label_paths
from utils.general import LOGGER, check_dataset, check_file
try:
import wandb
assert hasattr(wandb, "__version__") # verify package import not local dir
except (ImportError, AssertionError):
wandb = None
print(os, sys, contextmanager, yaml, tqdm, LoadImagesAndLabels, img2label_paths, LOGGER, check_dataset, check_file, wandb)
前后版本对比如下: