Pythonin päivitys, Home Assistant virtuaaliympäristössä

Pythonin päivitys, Home Assistant virtuaaliympäristössä

Home Assistant on rakennettu Python -ohjelmointikielellä. Home Assistant tukee yleisesti uusinta vakaata Python versiota ja yhtä aikasempaa pikkuversiota. Kirjoitushetkellä Pythonista on jokin aika sitten julkaistu versio 3.9.0. Se tarkoittaa että Home Assistant tukee jatkossa Pythonin 3.9.x ja 3.8.x versioita. Tuki 3.7.x versiolle päättyy.

Oma Home Assistant -asennukseni on ajalta jolloin Hassbian -asennusvaihtoehto oli vielä olemassa. Eli käytännössä laitteessa on Debianiin pohjautuva Raspbian (nykyisin Raspberry Pi OS), jossa Home Asistantia ajetaan Python -virtuaaliympäristössä (venv).

Python päivitetään komentoriviltä esimerkiksi SSH-yhteyden avulla. Ensiksi varmistetaan että järjestelmään on asennettuna kääntämiseen tarvittavat paketit:

sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev

Tämän jälkeen Python ladataan, käännetään ja asennetaan:

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar -xzf Python-3.9.0.tgz
cd Python-3.9.0
./configure --enable-optimizations --enable-loadable-sqlite-extensions
make
sudo make altinstall

Itsellä edellä olevat vaiheet kestivät Raspberry Pi 3B+:lla lähes kaksi tuntia. –enable-loadable-sqlite-extensions -parametri tarvitaan jos käytössä on MySQL/MariaDB -tietokanta.

Seuraavaksi tallennetaan tieto mitä paketteja Home Assistant tällä hetkellä käyttää, jotta ne saadaan asennettua myöhemmin uudelleen:

cd /home/homeassistant/
sudo  -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 freeze –local > requirements.txt
exit

Poistetaan vanha virtuaaliympäristö ja asennetaan uusi:

sudo systemctl stop home-assistant@homeassistant
sudo rm -r /srv/homeassistant/
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3.9 -m venv .
source /srv/homeassistant/bin/activate

Python -pakettien uudelleenasennus sekä Home Assistantin asennus (päivitys) ja käynnistys:

cd /home/homeassistant
pip3 install -r requirements.txt
pip3 install --upgrade homeassistant
exit
sudo systemctl restart home-assistant@homeassistant

Lopuksi aluksi ladattu Pythonin asennuspaketti Python-3.9.0.tgz ja siitä purettu hakemisto voidaan poistaa.

Järjestelmän tiedot
Järjestelmän tiedot

2 thoughts on “Pythonin päivitys, Home Assistant virtuaaliympäristössä

    1. Kiitos kommentista. Itselläkin oli jokunen erikoisempi kirjasto, jotka vaativat erityishuomiota. Jokainen HASS -asennus on hieman erilainen, joten en niitä tähän sisällyttänyt. Pythonin 3.9 oli myös ehkä pienoinen riskivalinta sen ollessa niin uusi, mahdollisten yhteensopivuusongelmien vuoksi. 3.8.x olisi ollut siinä mielessä turvallisempi valinta.

Vastaa

Sähköpostiosoitettasi ei julkaista.