Page 1 sur 2
Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 11:02
par Dr No
Bonjour,
Je souhaite, sur un switch virtuel, utiliser 2 scripts sur le On et le Off
Mes scripts testés via Putty avec la commande "python3 m-on.py" et "python3 m-off.py" fonctionnent parfaitement mais ils refusent de fonctionner dans la commande de mon switch : Erreur 512.
Code : Tout sélectionner
2019-01-26 10:46:11.101 Status: User: Admin initiated a switch command (13/Tamper-Boxe/Off)
2019-01-26 10:46:11.336 Status: Executing script: /home/pi/domoticz/scripts/python/m-off.py
2019-01-26 10:46:11.364 Error: Error executing script command (/home/pi/domoticz/scripts/python/m-off.py). returned: 512
2019-01-26 10:46:23.940 (Virtual) Lighting 2 (Tamper-Boxe)
2019-01-26 10:46:23.930 Status: User: Admin initiated a switch command (13/Tamper-Boxe/On)
2019-01-26 10:46:24.150 Status: Executing script: /home/pi/domoticz/scripts/python/m-on.py
2019-01-26 10:46:24.177 Error: Error executing script command (/home/pi/domoticz/scripts/python/m-on.py). returned: 512
Je pense que domoticz utilise Python 2.7, comment le contraindre à utiliser Python 3.*
J'ai essayer de modifier le Shebang avec Python3 ou Python 3.5 rien y fait
Merci d'avance pour vos suggestions.
Re: Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 13:25
par Thorgal
Franchement, oublie le script python et passe par un script shell qui lance le script python.
J'ai eu les memes problemes, versions de python, droits d'acces, librairies presentes en commande locale mais absentes en passant par domoticzs, mauvais emplacement du fichier, ect ....
Pour faire simple, domoticz galere pour faire un truc aussi simple que lancer une bete commande shell, pour eviter les prises de tetes > fichiers sh qui lancent les commandes, et encore tu n'es pas au bout de tes peines, meme pour ca ils arrivent a les faire lancer dans un environnement restreint.
Re: Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 14:25
par Dr No
Là ce ne sont que des tests mais, mon but est de gérer mon alarme et je comptais utiliser le clavier virtuel de Domoticz pour la mettre en service. Il me faut donc gérer plein de choses via ce script lancé par la mise On du clavier.
Ca me parait compromis après ce que tu me dis !!!
Je vais devoir revenir à ma solution actuelle aller lire le clavier par 'requests' puis json pour parser le résultat mais c'est apparemment très lourd. J'ai fais un test de lecture de 2 claviers, le virtuel et un physique (z-wave) donc 2 requests de suite, j'ai un time.sleep de 1s et, seulement avec ça mon Rpi-1 est chargé à 70%
Je ne comprends pas bien d'ailleurs pourquoi c'est autant consommateur de ressources. Je vais probablement essayer un sh
Re: Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 14:43
par vil1driver
Et si tu faisais voir ton script
Re: Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 15:22
par Dr No
Voici mon script de test qui fonctionne si je le lance via Putty "python3 m-on.py" et qui refuse de fonctionner dans mon switch virtuel
Code : Tout sélectionner
# -*- coding: utf-8 -*-
#!/usr/bin/python3
import RPi.GPIO as GPIO
import urllib
import requests
from requests.auth import HTTPBasicAuth
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(20, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(21, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(26, GPIO.IN)
GPIO.setup(19, GPIO.IN)
GPIO.setup(13, GPIO.IN)
GPIO.setup(6, GPIO.IN)
GPIO.setup(5, GPIO.IN)
urllib.request.urlopen("http://127.0.0.1:8080/json.htm?type=command¶m=switchlight&idx=171&switchcmd=On&level=0")
GPIO.output(21, GPIO.HIGH)
Re: Forcer l'utilisation de Python3
Publié : 26 janv. 2019, 17:34
par vil1driver
Remplace
par
Si l'erreur est toujours présente essai sans la partie urlopen pour voir
Re: Forcer l'utilisation de Python3
Publié : 27 janv. 2019, 00:17
par Chrominator
Je pense que tu peux garder ton
mais ce doit être les premiers caractères de ton source.
Et si tu as besoin du coding parce que tu as utilisé des accents ou des caractères non ascii, mets ton coding après le
shebang.
Re: Forcer l'utilisation de Python3
Publié : 27 janv. 2019, 11:02
par Dr No
J'ai fais cela mais, malheureusement cela ne résoud pas mon problème. Il semblerait que domoticz utilise une version 2 de python et j'ignore comment lui imposer python3.
Avec "update-alternatives" j'ai changé la version de python par défaut mais c'est inefficace pour mes scripts
Je suis sec !!!
Re: Forcer l'utilisation de Python3
Publié : 05 févr. 2019, 11:27
par vrolland
C'est assez simple en fait, regarde ici tu auras la réponse :
https://linuxconfig.org/how-to-change-f ... bian-linux
Il faut utiliser la fonction update-alternatives
Re: Forcer l'utilisation de Python3
Publié : 05 févr. 2019, 12:28
par Dr No
Merci beaucoup, cela résout mon petit souci