From 2b812f73ca1c25dd43c45eb646a9840f7f68ad1a Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sat, 26 Mar 2022 14:18:53 +0100 Subject: [PATCH] Sidestep `os.path.relpath()` Windows bug (#7158) * Sidestep os.path.relpath() Windows bug os.path.relpath() seems to have a major bug on Windows due to Windows horrible path handling. This fix attempts to sidestep the issue. ``` File "C:\Users\mkokg/.cache\torch\hub\ultralytics_yolov5_master\export.py", line 64, in ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative File "C:\Users\mkokg\AppData\Local\Programs\Python\Python310\lib\ntpath.py", line 718, in relpath raise ValueError("path is on mount %r, start on mount %r" % ( ValueError: path is on mount 'C:', start on mount 'D:' ``` * Update yolo.py * Update yolo.py * Update yolo.py * Update export.py --- export.py | 3 ++- models/yolo.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/export.py b/export.py index 2d4a68e62f89..7517dc4678da 100644 --- a/export.py +++ b/export.py @@ -61,7 +61,8 @@ ROOT = FILE.parents[0] # YOLOv5 root directory if str(ROOT) not in sys.path: sys.path.append(str(ROOT)) # add ROOT to PATH -ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative +if platform.system() != 'Windows': + ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative from models.common import Conv from models.experimental import attempt_load diff --git a/models/yolo.py b/models/yolo.py index 9f4701c49f9d..11e17d28fa47 100644 --- a/models/yolo.py +++ b/models/yolo.py @@ -7,6 +7,8 @@ """ import argparse +import os +import platform import sys from copy import deepcopy from pathlib import Path @@ -15,7 +17,8 @@ ROOT = FILE.parents[1] # YOLOv5 root directory if str(ROOT) not in sys.path: sys.path.append(str(ROOT)) # add ROOT to PATH -# ROOT = ROOT.relative_to(Path.cwd()) # relative +if platform.system() != 'Windows': + ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative from models.common import * from models.experimental import *