From 9b00d37022b735ddadb69de23918930340010ab7 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 25 Jun 2023 21:05:38 +0200 Subject: [PATCH] FROM ubuntu:lunar-20230615 and `lap` install fixes (#3374) --- docker/Dockerfile-cpu | 5 ++++- ultralytics/tracker/utils/matching.py | 3 ++- ultralytics/yolo/utils/checks.py | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile-cpu b/docker/Dockerfile-cpu index c58e4233..4afe392b 100644 --- a/docker/Dockerfile-cpu +++ b/docker/Dockerfile-cpu @@ -3,7 +3,7 @@ # Image is CPU-optimized for ONNX, OpenVINO and PyTorch YOLOv8 deployments # Start FROM Ubuntu image https://hub.docker.com/_/ubuntu -FROM ubuntu:22.10 +FROM ubuntu:lunar-20230615 # Downloads to user config dir ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/ @@ -23,6 +23,9 @@ WORKDIR /usr/src/ultralytics RUN git clone https://github.com/ultralytics/ultralytics /usr/src/ultralytics ADD https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt /usr/src/ultralytics/ +# Remove python3.11/EXTERNALLY-MANAGED or use 'pip install --break-system-packages' avoid 'externally-managed-environment' Ubuntu nightly error +RUN rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED + # Install pip packages RUN python3 -m pip install --upgrade pip wheel RUN pip install --no-cache -e . thop --extra-index-url https://download.pytorch.org/whl/cpu diff --git a/ultralytics/tracker/utils/matching.py b/ultralytics/tracker/utils/matching.py index f2d458eb..3bfc80f8 100644 --- a/ultralytics/tracker/utils/matching.py +++ b/ultralytics/tracker/utils/matching.py @@ -13,7 +13,8 @@ try: except (ImportError, AssertionError, AttributeError): from ultralytics.yolo.utils.checks import check_requirements - check_requirements('lap>=0.4') # install + check_requirements('cython') # required before installing lap from source + check_requirements('git+https://github.com/gatagat/lap.git') # more reliable than 'pip install lap' import lap diff --git a/ultralytics/yolo/utils/checks.py b/ultralytics/yolo/utils/checks.py index a2d571f6..2188aa8a 100644 --- a/ultralytics/yolo/utils/checks.py +++ b/ultralytics/yolo/utils/checks.py @@ -222,12 +222,13 @@ def check_requirements(requirements=ROOT.parent / 'requirements.txt', exclude=() s = '' # console string n = 0 # number of packages updates for r in requirements: + rmin = r.split('/')[-1].replace('.git', '') # replace git+https://org/repo.git -> 'repo' try: - pkg.require(r) + pkg.require(rmin) except (pkg.VersionConflict, pkg.DistributionNotFound): # exception if requirements not met try: # attempt to import (slower but more accurate) import importlib - importlib.import_module(next(pkg.parse_requirements(r)).name) + importlib.import_module(next(pkg.parse_requirements(rmin)).name) except ImportError: s += f'"{r}" ' n += 1