Bonjour,
Possesseur d'un raspberry pi, je cherche à contrôler omxplayer par ssh. Après certaines recherches, j'ai décidé d'utiliser paramiko pour la connexion ssh et des pipes sur le raspberry pour envoyer les informations à omxplayer.
Le code suivant fonctionne : il lance omxplayer sur le raspberry via le script play.sh.
Cependant, j'essaye maintenant d'intégrer ce bout de code dans une application graphique (pygtk) gérant toute ma bibliothèque (que j'ai fait). J'ai donc relié un bouton à une fonction contenant le code ci-dessus. Cependant maintenant je reçois systématiquement cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #!/usr/bin/env python #-*- coding:utf-8 -*- import paramiko hostname="192.168.1.22" username="pi" ssh = paramiko.SSHClient() # Creation du client ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Ajouter les clés automatiquement ssh.connect(hostname, username=username) # Connection à hostname selection=self.chemin+self.separateur+nomFichier aExecuter="sudo play.sh \"ssh/Jean"+selection[18:]+"\" < /home/pi/omxfifo &" print aExecuter stdin, stdout, stderr = ssh.exec_command(aExecuter) print "echo -n . > /home/pi/omxfifo" stdin, stdout, stderr = ssh.exec_command("echo -n . > /home/pi/omxfifo")
Qu'est ce qui change entre l’exécution du code tout seul, et l’exécution dans la fonction appelée qui pourrait empêcher le fonctionnement normal ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Traceback (most recent call last): File "InterfaceGraphique.py", line 489, in lancerVideo stdin, stdout, stderr = ssh.exec_command(aExecuter) File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 364, in exec_command chan.exec_command(command) File "/usr/lib/python2.7/dist-packages/paramiko/channel.py", line 213, in exec_command self._wait_for_event() File "/usr/lib/python2.7/dist-packages/paramiko/channel.py", line 1084, in _wait_for_event raise e paramiko.SSHException: Channel closed.
Merci.
Partager