|
|
@@ -172,7 +172,7 @@ def check_version(current='0.0.0', minimum='0.0.0', name='version ', pinned=Fals |
|
|
|
|
|
|
|
|
|
|
|
@try_except |
|
|
|
def check_requirements(requirements='requirements.txt', exclude=()): |
|
|
|
def check_requirements(requirements='requirements.txt', exclude=(), install=True): |
|
|
|
# Check installed dependencies meet requirements (pass *.txt file or list of packages) |
|
|
|
prefix = colorstr('red', 'bold', 'requirements:') |
|
|
|
check_python() # check python version |
|
|
@@ -188,13 +188,17 @@ def check_requirements(requirements='requirements.txt', exclude=()): |
|
|
|
try: |
|
|
|
pkg.require(r) |
|
|
|
except Exception as e: # DistributionNotFound or VersionConflict if requirements not met |
|
|
|
print(f"{prefix} {r} not found and is required by YOLOv5, attempting auto-update...") |
|
|
|
try: |
|
|
|
assert check_online(), f"'pip install {r}' skipped (offline)" |
|
|
|
print(check_output(f"pip install '{r}'", shell=True).decode()) |
|
|
|
n += 1 |
|
|
|
except Exception as e: |
|
|
|
print(f'{prefix} {e}') |
|
|
|
s = f"{prefix} {r} not found and is required by YOLOv5" |
|
|
|
if install: |
|
|
|
print(f"{s}, attempting auto-update...") |
|
|
|
try: |
|
|
|
assert check_online(), f"'pip install {r}' skipped (offline)" |
|
|
|
print(check_output(f"pip install '{r}'", shell=True).decode()) |
|
|
|
n += 1 |
|
|
|
except Exception as e: |
|
|
|
print(f'{prefix} {e}') |
|
|
|
else: |
|
|
|
print(f'{s}. Please install and rerun your command.') |
|
|
|
|
|
|
|
if n: # if packages updated |
|
|
|
source = file.resolve() if 'file' in locals() else requirements |