From 2ef886370c218ee85cc5e6547fc6a16cb30b000e Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sat, 10 May 2025 14:32:18 +0200 Subject: [PATCH] Use `uv` for pip installs (#13586) * Update tests to `pip install -e .` Signed-off-by: Glenn Jocher * Auto-format by https://ultralytics.com/actions * Update pyproject.toml Signed-off-by: Glenn Jocher * Use `setup-uv` and `uv pip` for package management. Replaced `setup-python` with `setup-uv` and updated pip commands to use the `uv` tool for dependency installation and listing. Simplifies package management and integrates * Use `setup-uv` and `uv pip` for package management. Replaced `setup-python` with `setup-uv` and updated pip commands to use the `uv` tool for dependency installation and listing. Simplifies package management and integrates-uv` for improved workflow consistency. * Use `setup-uv` and `uv pip` for package management. Replaced `setup-python` with `setup-uv` and updated pip commands to use the `uv` tool for dependency installation and listing. Simplifies package management and integrates-uv` for improved workflow consistency. * Use `setup-uv` and `uv pip` for package management. Replaced `setup-python` with `setup-uv` and updated pip commands to use the `uv` tool for dependency installation and listing. Simplifies package management and integrates-uv` for improved workflow consistency. --------- Signed-off-by: Glenn Jocher Co-authored-by: UltralyticsAssistant --- .github/workflows/ci-testing.yml | 12 +++++------- data/scripts/download_weights.sh | 2 +- data/scripts/get_coco.sh | 8 ++++---- data/scripts/get_imagenet.sh | 4 ++-- data/scripts/get_imagenet10.sh | 4 ++-- data/scripts/get_imagenet100.sh | 4 ++-- data/scripts/get_imagenet1000.sh | 4 ++-- pyproject.toml | 2 -- utils/aws/mime.sh | 15 ++++++++++----- utils/aws/userdata.sh | 2 +- 10 files changed, 29 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci-testing.yml b/.github/workflows/ci-testing.yml index 03e5de0..a21b5a9 100644 --- a/.github/workflows/ci-testing.yml +++ b/.github/workflows/ci-testing.yml @@ -27,13 +27,12 @@ jobs: - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: "pip" # cache pip dependencies + - uses: astral-sh/setup-uv@v6 - name: Install requirements run: | - python -m pip install --upgrade pip wheel - pip install -r requirements.txt coremltools openvino-dev "tensorflow-cpu<2.15.1" --extra-index-url https://download.pytorch.org/whl/cpu + uv pip install --system -r requirements.txt coremltools openvino-dev tensorflow --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match yolo checks - pip list + uv pip list - name: Benchmark DetectionModel run: | python benchmarks.py --data coco128.yaml --weights ${{ matrix.model }}.pt --img 320 --hard-fail 0.29 @@ -66,15 +65,14 @@ jobs: - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: "pip" # caching pip dependencies + - uses: astral-sh/setup-uv@v6 - name: Install requirements run: | - python -m pip install --upgrade pip wheel torch="" if [ "${{ matrix.torch }}" == "1.8.0" ]; then torch="torch==1.8.0 torchvision==0.9.0" fi - pip install -r requirements.txt $torch --extra-index-url https://download.pytorch.org/whl/cpu + uv pip install --system -r requirements.txt $torch --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match shell: bash # for Windows compatibility - name: Check environment run: | diff --git a/data/scripts/download_weights.sh b/data/scripts/download_weights.sh index 7726a9b..92be484 100755 --- a/data/scripts/download_weights.sh +++ b/data/scripts/download_weights.sh @@ -9,7 +9,7 @@ # ├── yolov5m.pt # └── ... -python - <=0.0.34", # for meta descriptions and images, dates and authors ] export = [ diff --git a/utils/aws/mime.sh b/utils/aws/mime.sh index f69cab0..721ad44 100644 --- a/utils/aws/mime.sh +++ b/utils/aws/mime.sh @@ -4,24 +4,29 @@ # This script will run on every instance restart, not only on first start # --- DO NOT COPY ABOVE COMMENTS WHEN PASTING INTO USERDATA --- -Content-Type: multipart/mixed; boundary="//" +Content-Type: multipart/mixed +boundary="//" MIME-Version: 1.0 --// -Content-Type: text/cloud-config; charset="us-ascii" +Content-Type: text/cloud-config +charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit -Content-Disposition: attachment; filename="cloud-config.txt" +Content-Disposition: attachment +filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// -Content-Type: text/x-shellscript; charset="us-ascii" +Content-Type: text/x-shellscript +charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit -Content-Disposition: attachment; filename="userdata.txt" +Content-Disposition: attachment +filename="userdata.txt" #!/bin/bash # --- paste contents of userdata.sh here --- diff --git a/utils/aws/userdata.sh b/utils/aws/userdata.sh index 4e5dfad..93ed3b6 100644 --- a/utils/aws/userdata.sh +++ b/utils/aws/userdata.sh @@ -25,5 +25,5 @@ else sudo docker start $id # sudo docker exec -it $id python train.py --resume # single-GPU sudo docker exec -d $id python utils/aws/resume.py # multi-scenario - done <<<"$list" + done <<< "$list" fi