Skip to content

Migrate all Python3 Scripts to uv #4961

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 58 commits into
base: main
Choose a base branch
from
Draft

Migrate all Python3 Scripts to uv #4961

wants to merge 58 commits into from

Conversation

MickLesk
Copy link
Member

@MickLesk MickLesk commented Jun 4, 2025

✍️ Description

Script Name Bash Call Install Done Update Done Install working? Update/Migration working? Error Msg
adventurelog bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/adventurelog.sh)"
archivebox bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/archivebox.sh)"
babybuddy bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/babybuddy.sh)"
bazarr bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/bazarr.sh)"
calibre-web bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/calibre-web.sh)"
changedetection bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/changedetection.sh)"
crafty-controller bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/crafty-controller.sh)"
deluge bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/deluge.sh)"
documenso bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/documenso.sh)"
esphome bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/esphome.sh)"
grist bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/grist.sh)"
homeassistant bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/homeassistant.sh)"
homer bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/homer.sh)"
immich bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/immich.sh)"
jupyternotebook bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/jupyternotebook.sh)"
kometa bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/kometa.sh)"
lazylibrarian bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/lazylibrarian.sh)"
medusa bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/medusa.sh)"
metube bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/metube.sh)"
motioneye bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/motioneye.sh)"
mylar3 bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/mylar3.sh)"
netbox bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/netbox.sh)"
nginxproxymanager bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/nginxproxymanager.sh)"
octoprint bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/octoprint.sh)"
openwebui bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/openwebui.sh)"
paperless-ai bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/paperless-ai.sh)"
paperless-ngx bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/paperless-ngx.sh)"
pialert bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/pialert.sh)"
prometheus-pve-exporter bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/prometheus-pve-exporter.sh)"
radicale bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/radicale.sh)"
sabnzbd bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/sabnzbd.sh)"
searxng bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/searxng.sh)"
skskd bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/skskd.sh)"
spoolman bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/spoolman.sh)"
stirling-pdf bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/stirling-pdf.sh)"
tandoor bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/tandoor.sh)" No project table found in: /opt/tandoor/pyproject.toml ⠹ [ERROR] in line 63: exit code 0: while executing command $STD uv run python version.py
tasmocompiler bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/tasmocompiler.sh)"
tautulli bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/tautulli.sh)"
unmanic bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/unmanic.sh)"
web-check bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/web-check.sh)"
wger bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/ct/wger.sh)" line 48: /home/wger/.venv/bin/uv: No such file or directory while executing command $STD /home/wger/.venv/bin/uv run python manage.py collectstatic

🔗 Related PR / Issue

Link: #

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

@github-actions github-actions bot added core high risk A change that can affect many scripts maintenance Code maintenance or general upkeep of the project update script A change that updates a script labels Jun 4, 2025
@MickLesk MickLesk mentioned this pull request Jun 4, 2025
12 tasks
@tremor021 tremor021 mentioned this pull request Jun 4, 2025
2 tasks
@tremor021 tremor021 mentioned this pull request Jun 6, 2025
2 tasks
Copy link
Member

@vhsdream vhsdream left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For line 307-323 (immich-install.sh), this works:

cd "$SRC_DIR"/machine-learning
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
$STD uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then
  msg_info "Installing HW-accelerated machine-learning"
  uv -q sync --extra openvino --no-cache --active
  patchelf --clear-execstack "$ML_DIR"/ml-venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so
  msg_ok "Installed HW-accelerated machine-learning"
else
  msg_info "Installing machine-learning"
  uv -q sync --extra cpu --no-cache --active
  msg_ok "Installed machine-learning"
fi

I've also found that the output of uv is not suppressed when using $STD, but using -q seems to do it, with the drawback that it will also suppress output during verbose operation.

Also, python3-dev (line 31) is required, otherwise the machine-learning build will fail

- Simplifies UV use in Immich install & update
- Uses Python 3.11 (No official support for 3.12 yet)
- Restores python3-dev package
@MickLesk MickLesk mentioned this pull request Jun 13, 2025
2 tasks
@MickLesk
Copy link
Member Author

I use this PR only for Tracking & Testing, every Script get His own PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core high risk A change that can affect many scripts maintenance Code maintenance or general upkeep of the project update script A change that updates a script
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants