Publisert Legg igjen en kommentar

Mqtt , Python og PM2 veiledning

Python benyttes fordi det er et språk som kan kjøres på de fleste plattformer som windows, MacOs og Linux.
Fordi jeg ikke ønsker at mine programmer og lisenser skal misbrukes, prekompilerer jeg mine python program. De får da .pyc filextention og kan ikke leses da de består av digital kode.
Pyc filer er også raskere å kjøre og tar opp mindre ressurser på datamaskinen.
Python script kompileres på denne måten:

(sudo) python -m compileall xxxx.py eller (sudo) python3 -m compileall xxxx.py
Den ferdige prekompilerte fila havner i underkatalogen ‘__pycache__’.
Det er to hovedversjoner av python, versjon 2.x og versjon 3.x.
Når du har begge installert skiller du mellom dem både i koden og i kommando.
Kommandoer for python 2.x er ‘pip’ og ‘python’ og for python 3.xx ‘pip3’ og ‘python3’.

Jeg benytter Pahoe-mqtt tillegget til python for å kunne benytte en mqtt broker.
Pahoe-mqtt for python installeres på denne måten:

‘(sudo)pip install paho-mqtt’ eller ‘(sudo)pip3 install paho-mqtt’

Mqtt brokeren mottar meldinger og formidler dem videre til de prosessene som abbonerer på dem. På denne måten blir automasjonsystemet meget raskt og responsivt.

Pm2 – prosess manager ver 2.
Denne modulen er meget nyttig for å skape et stabilt miljø for dine python program.
Pm2 settes opp for å automatisk starte opp de programmene du ønsker ved restart av systemet, og å restarte dem hvis feil skulle oppstå.

På Linux mm:
For å installere Pm2 må du ha npm. Les mer om npm her.
Jeg brukte disse kommandoene på linux
(sudo) npm install npm -g
(sudo)npm install pm2@latest -g

pm2 start myApp.js –name mySuperApp
pm2 save
reboot
pm2 ls

På windows:
npm install pm2 -g
npm install pm2-windows-startup -g
pm2-startup install
pm2 start myApp.js –name mySuperApp
pm2 save
reboot
pm2 ls

Les mer om pm2 her.
Et python script startes på denne måten i pm2:
pm2 start myApp.py
Siden jeg benytter prekompilerte python programmer med pyc extention må jeg starte disse
på denne måten:
(sudo) pm2 start myApp.pyc –interpreter=python3    gjør at python3 blir benyttet
(sudo) pm2 start myApp.pyc –interpreter=python    gjør at standard python blir benyttet

 

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *