J'utilise la commande subprocess.check_output pour deux commandes différentes et dans un cas j'ai un sous-processus. CalledProcessError et dans l'autre cas pas mais le programme se bloque. Le dossier gpio482 n'existe pas et la méthode set renvoie l'erreur et la méthode get planteexception de sous-processus python
méthode Get qui attire l'exception:
try:
subprocess.check_output("echo 0 > /sys/class/gpio/gpio482/value", shell=True)
except subprocess.CalledProcessError:
log("set state failed.")
return "not-writable"
Get méthode qui s'écrase:
try:
state_string = subprocess.check_output("cat /sys/class/gpio/gpio482/value", shell=True)
except subprocess.CalledProcessError:
log("Get state failed.")
return "integer", "0" # unknown
est-il un point que je fais mal ?!
Si je lance le commonds dans la coquille j'ai eu les mêmes messages d'erreur:
>>> subprocess.check_output("cat /sys/class/gpio/gpio482/value", shell=True)
cat: can't open '/sys/class/gpio/gpio482/value': No such file or directory
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'cat /sys/class/gpio/gpio482/value'
returned non-zero exit status 1
>>>
>>>
>>> subprocess.check_output("echo 0 > /sys/class/gpio/gpio482/value",
shell=True)
/bin/sh: /sys/class/gpio/gpio482/value: No such file or directory
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'echo 0 >
/sys/class/gpio/gpio482/value' returned non-zero exit status 1
quel message d'erreur vous avez reçu? –
Si j'essaie les deux lignes sur le shell, j'ai les mêmes messages d'erreur. – fresh
Impossible de reproduire votre cas, êtes-vous sûr que votre programme a gérer le 'CalledProcessError' –