From 51fc861b0f6c57a6e522f4069c1fcb67fee90ed7 Mon Sep 17 00:00:00 2001 From: MickLesk <47820557+MickLesk@users.noreply.github.com> Date: Wed, 30 Sep 2026 21:02:16 +0200 Subject: [PATCH] Install into uv venvs with uv pip instead of pip --- ct/adventurelog.sh | 5 ++--- ct/changedetection.sh | 5 ++--- ct/esphome.sh | 5 ++--- ct/fireshare.sh | 3 +-- ct/jupyternotebook.sh | 7 +++---- ct/prometheus-pve-exporter.sh | 5 ++--- ct/scraparr.sh | 3 +-- install/adventurelog-install.sh | 5 ++--- install/changedetection-install.sh | 5 ++--- install/esphome-install.sh | 3 +-- install/fireshare-install.sh | 3 +-- install/jupyternotebook-install.sh | 3 +-- install/mylar3-install.sh | 3 +-- install/prometheus-pve-exporter-install.sh | 3 +-- install/scraparr-install.sh | 3 +-- 15 files changed, 23 insertions(+), 38 deletions(-) diff --git a/ct/adventurelog.sh b/ct/adventurelog.sh index 079fbf9b2..6a4bbbc42 100644 --- a/ct/adventurelog.sh +++ b/ct/adventurelog.sh @@ -54,9 +54,8 @@ function update_script() { $STD uv venv --clear .venv $STD .venv/bin/python -m ensurepip --upgrade fi - $STD .venv/bin/python -m pip install --upgrade pip - $STD .venv/bin/python -m pip install -r requirements.txt - $STD .venv/bin/python -m pip install 'djangorestframework<3.15' + $STD uv pip install --python .venv/bin/python -r requirements.txt + $STD uv pip install --python .venv/bin/python 'djangorestframework<3.15' $STD .venv/bin/python -m manage collectstatic --noinput $STD .venv/bin/python -m manage migrate diff --git a/ct/changedetection.sh b/ct/changedetection.sh index ebcdd399e..2e4ef2ec9 100644 --- a/ct/changedetection.sh +++ b/ct/changedetection.sh @@ -56,12 +56,11 @@ function update_script() { rm -rf "$VENV_PATH" $STD uv venv --clear "$VENV_PATH" $STD "$VENV_PATH/bin/python" -m ensurepip --upgrade - $STD "$VENV_PATH/bin/python" -m pip install --upgrade pip - $STD "$VENV_PATH/bin/python" -m pip install changedetection.io playwright + $STD uv pip install --python "$VENV_PATH/bin/python" changedetection.io playwright msg_ok "Migrated to uv/venv" else msg_info "Updating ${APP}" - $STD "$VENV_PATH/bin/python" -m pip install --upgrade changedetection.io playwright + $STD uv pip install --python "$VENV_PATH/bin/python" --upgrade changedetection.io playwright msg_ok "Updated ${APP}" fi diff --git a/ct/esphome.sh b/ct/esphome.sh index 9f549ab16..38558435b 100644 --- a/ct/esphome.sh +++ b/ct/esphome.sh @@ -48,13 +48,12 @@ function update_script() { cd /opt/esphome $STD uv venv --clear "$VENV_PATH" $STD "$VENV_PATH/bin/python" -m ensurepip --upgrade - $STD "$VENV_PATH/bin/python" -m pip install --upgrade pip - $STD "$VENV_PATH/bin/python" -m pip install esphome esphome-device-builder esptool + $STD uv pip install --python "$VENV_PATH/bin/python" esphome esphome-device-builder esptool msg_ok "Migrated to uv/venv" else msg_info "Updating ESPHome Device Builder" PYTHON_VERSION="3.12" setup_uv - $STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome esphome-device-builder esptool + $STD uv pip install --python "$VENV_PATH/bin/python" --upgrade esphome esphome-device-builder esptool msg_ok "Updated ESPHome Device Builder" fi diff --git a/ct/fireshare.sh b/ct/fireshare.sh index e4a44add7..188acb30b 100644 --- a/ct/fireshare.sh +++ b/ct/fireshare.sh @@ -56,8 +56,7 @@ function update_script() { cd /opt/fireshare $STD uv venv --clear $STD .venv/bin/python -m ensurepip --upgrade - $STD .venv/bin/python -m pip install --upgrade --break-system-packages pip - $STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server + $STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server cp .venv/bin/fireshare /usr/local/bin/fireshare set -a source /opt/fireshare/fireshare.env diff --git a/ct/jupyternotebook.sh b/ct/jupyternotebook.sh index b40b12c2e..a878a607e 100644 --- a/ct/jupyternotebook.sh +++ b/ct/jupyternotebook.sh @@ -38,13 +38,12 @@ function update_script() { cd "$INSTALL_DIR" $STD uv venv --clear .venv $STD "$VENV_PYTHON" -m ensurepip --upgrade - $STD "$VENV_PYTHON" -m pip install --upgrade pip - $STD "$VENV_PYTHON" -m pip install jupyter + $STD uv pip install --python "$VENV_PYTHON" jupyter msg_ok "Migrated to uv and installed Jupyter" else + PYTHON_VERSION="3.12" setup_uv msg_info "Updating Jupyter" - $STD "$VENV_PYTHON" -m pip install --upgrade pip - $STD "$VENV_PYTHON" -m pip install --upgrade jupyter + $STD uv pip install --python "$VENV_PYTHON" --upgrade jupyter msg_ok "Jupyter updated" fi diff --git a/ct/prometheus-pve-exporter.sh b/ct/prometheus-pve-exporter.sh index 3ba006378..1c182255c 100644 --- a/ct/prometheus-pve-exporter.sh +++ b/ct/prometheus-pve-exporter.sh @@ -45,13 +45,12 @@ function update_script() { cd /opt/prometheus-pve-exporter $STD uv venv --clear "$PVE_VENV_PATH" $STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade - $STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip - $STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter + $STD uv pip install --python "$PVE_VENV_PATH/bin/python" prometheus-pve-exporter msg_ok "Migrated to uv/venv" else msg_info "Updating Prometheus Proxmox VE Exporter" PYTHON_VERSION="3.12" setup_uv - $STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter + $STD uv pip install --python "$PVE_VENV_PATH/bin/python" --upgrade prometheus-pve-exporter msg_ok "Updated Prometheus Proxmox VE Exporter" fi local service_file="/etc/systemd/system/prometheus-pve-exporter.service" diff --git a/ct/scraparr.sh b/ct/scraparr.sh index 56252c6bb..3523274ca 100644 --- a/ct/scraparr.sh +++ b/ct/scraparr.sh @@ -42,8 +42,7 @@ function update_script() { cd /opt/scraparr $STD uv venv --clear /opt/scraparr/.venv $STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade - $STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip - $STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt + $STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt chmod -R 755 /opt/scraparr msg_ok "Updated Scraparr" diff --git a/install/adventurelog-install.sh b/install/adventurelog-install.sh index 10e664bc6..0493aca58 100644 --- a/install/adventurelog-install.sh +++ b/install/adventurelog-install.sh @@ -60,9 +60,8 @@ cd /opt/adventurelog/backend/server mkdir -p /opt/adventurelog/backend/server/media $STD uv venv --clear /opt/adventurelog/backend/server/.venv $STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade -$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip -$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt -$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install 'djangorestframework<3.15' +$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python -r requirements.txt +$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python 'djangorestframework<3.15' $STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput $STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate $STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries diff --git a/install/changedetection-install.sh b/install/changedetection-install.sh index 384189117..f79bbd057 100644 --- a/install/changedetection-install.sh +++ b/install/changedetection-install.sh @@ -60,8 +60,7 @@ msg_info "Installing Change Detection" mkdir -p /opt/changedetection $STD uv venv --clear /opt/changedetection/.venv $STD /opt/changedetection/.venv/bin/python -m ensurepip --upgrade -$STD /opt/changedetection/.venv/bin/python -m pip install --upgrade pip -$STD /opt/changedetection/.venv/bin/python -m pip install changedetection.io +$STD uv pip install --python /opt/changedetection/.venv/bin/python changedetection.io cat </opt/changedetection/.env WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch=eyJkZWZhdWx0Vmlld3BvcnQiOnsiaGVpZ2h0Ijo3MjAsIndpZHRoIjoxMjgwfSwiaGVhZGxlc3MiOmZhbHNlLCJzdGVhbHRoIjp0cnVlfQ==&blockAds=true @@ -71,7 +70,7 @@ msg_ok "Installed Change Detection" msg_info "Installing Browserless & Playwright" mkdir /opt/browserless -$STD /opt/changedetection/.venv/bin/python -m pip install playwright +$STD uv pip install --python /opt/changedetection/.venv/bin/python playwright $STD git clone https://github.com/browserless/chrome /opt/browserless $STD npm ci --include=optional --include=dev --prefix /opt/browserless $STD npm install --save-exact playwright-core@1.62.1 --prefix /opt/browserless diff --git a/install/esphome-install.sh b/install/esphome-install.sh index 02c46b155..10870d848 100644 --- a/install/esphome-install.sh +++ b/install/esphome-install.sh @@ -26,8 +26,7 @@ mkdir -p /root/config cd /opt/esphome $STD uv venv --clear /opt/esphome/.venv $STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade -$STD /opt/esphome/.venv/bin/python -m pip install --upgrade pip -$STD /opt/esphome/.venv/bin/python -m pip install esphome esphome-device-builder esptool +$STD uv pip install --python /opt/esphome/.venv/bin/python esphome esphome-device-builder esptool msg_ok "Setup and Installed ESPHome Device Builder" msg_info "Linking esphome to /usr/local/bin" diff --git a/install/fireshare-install.sh b/install/fireshare-install.sh index 3fe5497de..2bed84b8d 100644 --- a/install/fireshare-install.sh +++ b/install/fireshare-install.sh @@ -98,7 +98,6 @@ mkdir -p /opt/fireshare-{data,videos,images,processed} cd /opt/fireshare $STD uv venv $STD .venv/bin/python -m ensurepip --upgrade -$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip ln -sf /usr/local/bin/ffmpeg /usr/bin/ffmpeg ln -sf /usr/local/bin/ffprobe /usr/bin/ffprobe echo "/usr/local/lib" >/etc/ld.so.conf.d/usr-local.conf @@ -106,7 +105,7 @@ echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf.d/usr-local.conf echo "/usr/local/nvidia/lib" >>/etc/ld.so.conf.d/nvidia.conf echo "/usr/local/nvidia/lib64" >>/etc/ld.so.conf.d/nvidia.conf ldconfig -$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server +$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server cp .venv/bin/fireshare /usr/local/bin/fireshare export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()" export DATA_DIRECTORY=/opt/fireshare-data diff --git a/install/jupyternotebook-install.sh b/install/jupyternotebook-install.sh index c8b5839d1..acdec2b89 100644 --- a/install/jupyternotebook-install.sh +++ b/install/jupyternotebook-install.sh @@ -20,8 +20,7 @@ mkdir -p /opt/jupyter cd /opt/jupyter $STD uv venv --clear /opt/jupyter/.venv $STD /opt/jupyter/.venv/bin/python -m ensurepip --upgrade -$STD /opt/jupyter/.venv/bin/python -m pip install --upgrade pip -$STD /opt/jupyter/.venv/bin/python -m pip install jupyter +$STD uv pip install --python /opt/jupyter/.venv/bin/python jupyter ln -s /opt/jupyter/.venv/bin/jupyter /usr/local/bin/jupyter ln -s /opt/jupyter/.venv/bin/jupyter-lab /usr/local/bin/jupyter-lab ln -s /opt/jupyter/.venv/bin/jupyter-notebook /usr/local/bin/jupyter-notebook diff --git a/install/mylar3-install.sh b/install/mylar3-install.sh index f7bd76dc7..bfe2dd065 100644 --- a/install/mylar3-install.sh +++ b/install/mylar3-install.sh @@ -32,8 +32,7 @@ msg_info "Installing Mylar3" mkdir -p /opt/mylar3-data $STD uv venv --clear /opt/mylar3/.venv $STD /opt/mylar3/.venv/bin/python -m ensurepip --upgrade -$STD /opt/mylar3/.venv/bin/python -m pip install --upgrade pip -$STD /opt/mylar3/.venv/bin/python -m pip install --no-cache-dir -r /opt/mylar3/requirements.txt +$STD uv pip install --python /opt/mylar3/.venv/bin/python --no-cache -r /opt/mylar3/requirements.txt msg_ok "Installed Mylar3" msg_info "Creating Service" diff --git a/install/prometheus-pve-exporter-install.sh b/install/prometheus-pve-exporter-install.sh index bc571b045..0c6e69809 100644 --- a/install/prometheus-pve-exporter-install.sh +++ b/install/prometheus-pve-exporter-install.sh @@ -21,8 +21,7 @@ cd /opt/prometheus-pve-exporter $STD uv venv --clear /opt/prometheus-pve-exporter/.venv $STD /opt/prometheus-pve-exporter/.venv/bin/python -m ensurepip --upgrade -$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install --upgrade pip -$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install prometheus-pve-exporter +$STD uv pip install --python /opt/prometheus-pve-exporter/.venv/bin/python prometheus-pve-exporter cat </opt/prometheus-pve-exporter/pve.yml default: user: prometheus@pve diff --git a/install/scraparr-install.sh b/install/scraparr-install.sh index b5a9b3192..1f88c50f1 100644 --- a/install/scraparr-install.sh +++ b/install/scraparr-install.sh @@ -20,8 +20,7 @@ msg_info "Installing Scraparr" cd /opt/scraparr $STD uv venv --clear /opt/scraparr/.venv $STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade -$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip -$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt +$STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt chmod -R 755 /opt/scraparr mkdir -p /scraparr/config mv /opt/scraparr/config.yaml /scraparr/config/config.yaml