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