]> ## Python 3 for UNRAID ### General Update Advisory: Backend Version Changes Beware that Python (and "pip") packages are always tied to their respective Python versions. Always read the changelog carefully before updating the plugin (watch out for Python version changes). If the Python version changes between the updates, take note of your installed packages before updating. You will need to re-install any packages whenever on a new Python version, this is in the nature of Python. A convenient way is using "pip freeze" (before) and "pip install" (after) commands to save/restore packages. ### 2024.10.08 - release note: this update has no backend/version changes for users on the "default" branch (configurable in GUI settings) - new: Python 3.13.x was released as stable and is now available for users on the "latest" branch (configurable in GUI settings) - new: a "previous" backend branch was added for users wishing to remain on Python 3.12.x (configurable in GUI settings) - latest backend: updated to python3-3.13.0 (for OS versions 6.11 to 7.0) - latest backend: this update includes a Python version change, take note of installed packages (see above) - previous backend: updated to python3-3.12.7 (for OS versions 6.11 to 7.0) - previous backend: patch version update is package compatible (when switching branch latest/3.12.6 to previous/3.12.7) - "latest" users wishing to stay on 3.12.x: update plugin, switch branch to "previous", reinstall plugin (packages are preserved) ### 2024.09.19 - new: added a backend branch switch to the GUI offering to choose from different Python versions - new: added a "latest" backend to the GUI for faster-paced, bleeding-edge Python versions (for advanced users) - latest backend: python3-3.12.6 (for OS versions 6.11 to 7.0) - latest backend: python-pip-24.2 (for OS versions 6.11 to 7.0) - latest backend: python-setuptools-75.1.0 (for OS versions 6.11 to 7.0) ### 2024.09.18a - new: added update checking mechanism to GUI - default backend: python3-3.9.10 to python3-3.11.10 (for OS versions 6.11 to 6.13) - default backend: python-pip-21.3.1 to python-pip-24.2 (for OS versions 6.11 to 6.13) - default backend: python-setuptools-57.5.0 to python-setuptools-75.1.0 (for OS versions 6.11 to 6.13) - default backend: this update includes a Python version change, take note of installed packages (see above) ### 2024.09.18 - release note: welcome to the first version of the package killall python-poller >/dev/null 2>&1 if [ ! -e /boot/config/plugins/dwpython.plg ] && type python3 >/dev/null 2>&1; then echo "" echo "-------------------------------------------------------------" echo " !!! INSTALLATION ABORTED" echo " !!! python3 is already installed on your system." echo " !!! Perhaps remnants in '/boot/extra' or by another plugin?" echo "-------------------------------------------------------------" echo "" exit 1 fi if [ ! -e /boot/config/plugins/dwpython.plg ] && type pip3 >/dev/null 2>&1; then echo "" echo "-------------------------------------------------------------" echo " !!! INSTALLATION ABORTED" echo " !!! pip3 is already installed on your system." echo " !!! Perhaps remnants in '/boot/extra' or by another plugin?" echo "-------------------------------------------------------------" echo "" exit 1 fi echo "" echo "-------------------------------------------------------------" echo " !!! INSTALLING, THIS MAY TAKE A WHILE..." echo " !!! IT IS NORMAL THAT SOME PACKAGES ARE SKIPPED" echo " !!! KEEP THIS WINDOW OPEN UNTIL COMPLETION IS REPORTED" echo "-------------------------------------------------------------" echo "" exit 0 &pkgURL;/python3-3.13.0-x86_64-1dwl_slack15.1.txz d9c3852be7004a61888b037a4a79327a &pkgURL;/python-pip-24.2-x86_64-2dwl_slack15.1.txz 5714abfc6fe9e5fe4715742614bfd012 &pkgURL;/python-setuptools-75.1.0-x86_64-2dwl_slack15.1.txz d151b777d570e97fa1053980c4790565 &pkgURL;/python3-3.12.7-x86_64-1dwl_slack15.1.txz 76099117d5327103f23cbfc5e9d1fba1 &pkgURL;/python-pip-24.2-x86_64-1dwl_slack15.1.txz eaec823dbd9d0b53392e10bcc53d9a13 &pkgURL;/python-setuptools-75.1.0-x86_64-1dwl_slack15.1.txz f201188f1769e1cb03f4235933ec77a7 &pkgURL;/python3-3.11.10-x86_64-1.txz a3c5f7144feeeb7aaf3727af3104d203 &pkgURL;/python-pip-24.2-x86_64-1.txz cb25ed43e2ba23bfa74c039f0b719753 &pkgURL;/python-setuptools-75.1.0-x86_64-1.txz c78878faa4210fca2e983da272d71049 CONFIG=&plgPATH;/&name;.cfg if [ -e "$CONFIG" ]; then source "$CONFIG" if [ "$BACKEND" == "latest" ]; then echo "Installing user-configured LATEST backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.13.0-x86_64-1dwl_slack15.1.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-2dwl_slack15.1.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-2dwl_slack15.1.txz elif [ "$BACKEND" == "previous" ]; then echo "Installing user-configured PREVIOUS backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.12.7-x86_64-1dwl_slack15.1.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1dwl_slack15.1.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1dwl_slack15.1.txz elif [ "$BACKEND" == "default" ]; then echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1.txz else echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1.txz fi else echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1.txz fi echo "" &pkgURL;/python3-3.13.0-x86_64-1dwl_slack15.0.txz e49758df5fdeb3d7c0a1d8cf7ea1e7a1 &pkgURL;/python-pip-24.2-x86_64-2dwl_slack15.0.txz af7d9a110d7e5f8f68d2c467a9a7a621 &pkgURL;/python-setuptools-75.1.0-x86_64-2dwl_slack15.0.txz e933b2b7954877e107ddf98a0c31185a &pkgURL;/python3-3.12.7-x86_64-1dwl_slack15.0.txz 727afc626f144a264ceb798c776c338c &pkgURL;/python-pip-24.2-x86_64-1dwl_slack15.0.txz 33bda4c0e94941d1cb0edc17bc799b8c &pkgURL;/python-setuptools-75.1.0-x86_64-1dwl_slack15.0.txz 31b397b669afef346c1a1491778214cc &pkgURL;/python3-3.11.10-x86_64-1dw_slack15.0.txz 9268f4776e873f5e6ece255eb2976726 &pkgURL;/python-pip-24.2-x86_64-1dw_slack15.0.txz eb4f22357ac11f3472d10a62d8dbc951 &pkgURL;/python-setuptools-75.1.0-x86_64-1dw_slack15.0.txz 1a7827093e738d1a5f7e2530fa48686f CONFIG=&plgPATH;/&name;.cfg if [ -e "$CONFIG" ]; then source "$CONFIG" if [ "$BACKEND" == "latest" ]; then echo "Installing user-configured LATEST backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.13.0-x86_64-1dwl_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-2dwl_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-2dwl_slack15.0.txz elif [ "$BACKEND" == "previous" ]; then echo "Installing user-configured PREVIOUS backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.12.7-x86_64-1dwl_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1dwl_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1dwl_slack15.0.txz elif [ "$BACKEND" == "default" ]; then echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1dw_slack15.0.txz else echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1dw_slack15.0.txz fi else echo "Installing DEFAULT backend for Python3..." upgradepkg --install-new --terse &plgPATH;/python3-3.11.10-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-pip-24.2-x86_64-1dw_slack15.0.txz upgradepkg --install-new --terse &plgPATH;/python-setuptools-75.1.0-x86_64-1dw_slack15.0.txz fi echo "" &gitURL;/archive/&plgNAME;.txz &plgMD5; if [ ! -e /tmp/dwpython-autoexec.sh ]; then cp -f /boot/config/plugins/dwpython/scripts/autoexec.sh /tmp/dwpython-autoexec.sh >/dev/null 2>&1 chmod 755 /tmp/dwpython-autoexec.sh >/dev/null 2>&1 if [ -x /tmp/dwpython-autoexec.sh ]; then echo "" echo "Executing 'autoexec.sh' script in background (check SYSLOG)..." (/tmp/dwpython-autoexec.sh 2>&1 | logger -t "dwpython-autoexec") >/dev/null 2>&1 & fi fi /etc/cron.daily/python-poller conntest >/dev/null 2>&1 & echo "" echo "-------------------------------------------------------------" echo " Python 3 for UNRAID has been installed." echo " Version: &version; / Plugin Maintainer: &author;" echo "-------------------------------------------------------------" echo "" killall python-poller >/dev/null 2>&1 echo "" echo "-------------------------------------------------------------" echo " !!! UNINSTALLING, THIS MAY TAKE A WHILE..." echo " !!! IT IS NORMAL THAT SOME PACKAGES ARE NOT FOUND" echo " !!! KEEP THIS WINDOW OPEN UNTIL COMPLETION IS REPORTED" echo "-------------------------------------------------------------" echo "" removepkg --terse &plgPATH;/*.txz rm -rf &plgPATH;/*.txz rm -rf &plgPATH;/scripts rm -rf &emhttp; rm -f /tmp/dwpython-autoexec.sh rm -f /etc/cron.daily/python-poller >/dev/null 2>&1 echo "" echo "-----------------------------------------------------------" echo " Python 3 for UNRAID has been removed." echo " Version: &version; / Plugin Maintainer: &author;" echo "-----------------------------------------------------------" echo ""