Dans Dev Diary 2.0 Help

Upgrade Home Assistant Python Version 3.13.0

  1. Check current python version

    python3 --version
  2. Download Python 3.13.0

    wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz
  3. Unpack it.

    sudo tar --no-same-owner -xzf Python-3.13.0.tgz
  4. SqlLite3 Requirement

    sudo systemctl stop home-assistant@homeassistant.service wget https://sqlite.org/2021/sqlite-autoconf-3360000.tar.gz tar -xvf sqlite-autoconf-3360000.tar.gz ./configure make sudo make install sudo cp /usr/local/lib/*sql* /usr/lib/x86_64-linux-gnu/
  5. Make and install Python 3.13

    cd Python-3.13.0/ sudo apt update sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev sudo ./configure --enable-optimization sudo make -j$(nproc) sudo make altinstall sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.13 1 sudo update-alternatives --config python3 0
  6. validate build

    python3 --version
  7. House Keeping

    sudo apt --fix-broken install sudo apt install python3-minimal grub2-common sudo python3 -m ensurepip --upgrade sudo python3 -m pip install --upgrade pip sudo apt update && sudo apt upgrade sudo apt autoremove --purge sudo apt clean
  8. Freeze current home assistant python packages

    cd /home/homeassistant/.homeassistant sudo su homeassistant source /srv/homeassistant/bin/activate pip3 freeze –local > requirements-2024.12.txt exit
  9. Stop the HASS instance

    sudo systemctl stop home-assistant@homeassistant
  10. backup homeassistant config

    cd /srv sudo mv homeassistant homeassistantold-20241226
  11. make new home assistant folder

    sudo mkdir /srv/homeassistant sudo chown -R homeassistant:homeassistant homeassistant
  12. Create new virtual environment

    sudo -u homeassistant -H -s cd /srv/homeassistant python3.13 -m venv .
  13. Activate the Python venv

    source /srv/homeassistant/bin/activate
  14. Upgrade Requirements

    sudo -u homeassistant -H -s cd /home/homeassistant/.homeassistant pip3 install --upgrade wheel pip install --upgrade pip
  15. Upgrade HASS on the new Python version

    cd /srv/homeassistant/lib sudo -u homeassistant -H -s source /srv/homeassistant/bin/activate pip3 install --upgrade hass-nabucasa pip3 install pyOpenSSL --upgrade pip install --use-deprecated=legacy-resolver cryptography==42.0.0 pip3 install --upgrade homeassistant pip install mysqlclient pip install mysql-connector-python
  16. Update the Home Assistant runtime in the Systemd service

    sudo nvim /etc/systemd/system/home-assistant\@homeassistant.service

    Change the execution line runtime to python3.13:

    ExecStart=/srv/homeassistant/bin/python3.13 -m homeassistant --config /home/homeassistant/.homeassistant

  17. Reload the service

    sudo systemctl daemon-reload
  18. Restart the service

    sudo systemctl start home-assistant@homeassistant.service
Last modified: 09 February 2025