Tu fais "python2 simpletest.py" pour le lancer avec Python 2, et tu fais "python3 simpletest.py" pour le lancer avec Python 3.
Tu pourrais me dire quelle est la version de Python qui apparaît sur la première ligne quand tu tapes juste "python" tout seul dans la console aussi ?
[Tutoriel] Gérer ses colonies avec un Raspberry Pi
Règles du forum
Charte du Forum et Code de Déontologie du Myrmécologue
Charte du Forum et Code de Déontologie du Myrmécologue
- Calvin
- Gyne Fécondée
- Messages : 1213
- Inscription : lun. 5 août 2013 10:41
- Localisation : Yvelines (France)
- Genre :
Re: [Tutoriel] Gérer ses colonies avec un Raspberry Pi
Je viens d'effectuer les tests que tu m'as demandé :
J'ai ouvert simpletest.py avec Python 2 et 3.
Son code est :
Comme on peut le voir, il est codé pour du Python 3, une fois ouvert avec cette édition voici le message d'erreur :
Et par acquis de conscience, j'ai essayé avec l'IDLE de Python 2, mais, c'est encore pire (étant donné que le code n'est pas compatible) :
J'ai ouvert simpletest.py avec Python 2 et 3.
Son code est :
Comme on peut le voir, il est codé pour du Python 3, une fois ouvert avec cette édition voici le message d'erreur :
Code : Tout sélectionner
Traceback (most recent call last):
File "/home/pi/Adafruit_Python_BMP/examples/simpletest.py", line 27, in <module>
import Adafruit_BMP.BMP085 as BMP085
ImportError: No module named 'Adafruit_BMP'
Et par acquis de conscience, j'ai essayé avec l'IDLE de Python 2, mais, c'est encore pire (étant donné que le code n'est pas compatible) :
Code : Tout sélectionner
Traceback (most recent call last):
File "/home/pi/Adafruit_Python_BMP/examples/simpletest.py", line 37, in <module>
sensor = BMP085.BMP085()
File "build/bdist.linux-armv7l/egg/Adafruit_BMP/BMP085.py", line 67, in __init__
self._device = i2c.get_i2c_device(address, **kwargs)
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 64, in get_i2c_device
return Device(address, busnum, i2c_interface, **kwargs)
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 97, in __init__
self._bus = Adafruit_PureIO.smbus.SMBus(busnum)
File "build/bdist.linux-armv7l/egg/Adafruit_PureIO/smbus.py", line 97, in __init__
self.open(bus)
File "build/bdist.linux-armv7l/egg/Adafruit_PureIO/smbus.py", line 122, in open
self._device = open('/dev/i2c-{0}'.format(bus), 'r+b', buffering=0)
IOError: [Errno 2] No such file or directory: '/dev/i2c-1'
TUER LE TEMPS EN ÉCRIVANT N'EST PAS UN CRIME
- Sareladen
- Larve 3
- Messages : 46
- Inscription : mar. 28 mars 2017 21:25
- Localisation : Ille-et-Vilaine (France)
- Genre :
- Contact :
Re: [Tutoriel] Gérer ses colonies avec un Raspberry Pi
Je ne sais pas d'où tu sors que ce n'est pas compatible avec Python 2, il y a 6 lignes de vrai code à tout casser et aucune ne fait appel à des fonctionnalités spécifiques de Python 3. Le "print" avec des parenthèses est obligatoire avec Python 3, mais marche très bien avec Python 2 bien qu'on puisse aussi omettre les parenthèses. 
Tu interprètes mal les messages d'erreur aussi, en Python 3 il te dit qu'il ne trouve pas le module que tu cherches : c'est normal, tu ne l'as pas installé pour Python 3 mais pour Python 2. En effet, en ouvrant le script avec Python 2, il le trouve ce fameux module ! Tu le vois parce que dans le traceback qu'il te met quand il plante il fait appel à du code qui vient avec ce module. Le problème qu'il a est d'ordre plus fondamental, il n'arrive pas à détecter ton baromètre. Pire, il n'arrive même pas à avoir accès à l'I2C, que ton ordinateur est censé utiliser pour communiquer avec ! Si le script n'avait pas été compatible avec Python 2, tu aurais eu un Syntax error ou un truc du genre qui aurait fait référence à une ligne du script même, pas une ligne d'une bibliothèque extérieure.
Normalement ça se corrige en lançant la commande suivante avant d'éditer quelques fichiers :
Après, dans /etc/modules, il faut ajouter aux deux dernières lignes :
Si le fichier /etc/modprobe.d/raspi-blacklist.conf existe, il faut lui retirer les deux lignes suivantes (ou ajouter un # devant) :
Dans /boot/config.txt, ajoute enfin :
Après ça il s'agit de redémarrer. Normalement, ton script devrait fonctionner si tu le lances avec Python 2 du coup, si ce n'est toujours pas le cas lance les deux commandes suivantes et dis-moi ce que ça te donne :
Si une des deux te donne un petit 77 tout en bas à droite c'est que ton Raspberry arrive au moins à communiquer avec le baromètre.

Tu interprètes mal les messages d'erreur aussi, en Python 3 il te dit qu'il ne trouve pas le module que tu cherches : c'est normal, tu ne l'as pas installé pour Python 3 mais pour Python 2. En effet, en ouvrant le script avec Python 2, il le trouve ce fameux module ! Tu le vois parce que dans le traceback qu'il te met quand il plante il fait appel à du code qui vient avec ce module. Le problème qu'il a est d'ordre plus fondamental, il n'arrive pas à détecter ton baromètre. Pire, il n'arrive même pas à avoir accès à l'I2C, que ton ordinateur est censé utiliser pour communiquer avec ! Si le script n'avait pas été compatible avec Python 2, tu aurais eu un Syntax error ou un truc du genre qui aurait fait référence à une ligne du script même, pas une ligne d'une bibliothèque extérieure.
Normalement ça se corrige en lançant la commande suivante avant d'éditer quelques fichiers :
Code : Tout sélectionner
sudo apt-get install i2c-tools
Après, dans /etc/modules, il faut ajouter aux deux dernières lignes :
Code : Tout sélectionner
i2c-bcm2708
i2c-dev
Code : Tout sélectionner
blacklist spi-bcm2708
blacklist i2c-bcm2708
Code : Tout sélectionner
dtparam=i2c1=on
dtparam=i2c_arm=on
Après ça il s'agit de redémarrer. Normalement, ton script devrait fonctionner si tu le lances avec Python 2 du coup, si ce n'est toujours pas le cas lance les deux commandes suivantes et dis-moi ce que ça te donne :
Code : Tout sélectionner
sudo i2cdetect -y 0
sudo i2cdetect -y 1
Si une des deux te donne un petit 77 tout en bas à droite c'est que ton Raspberry arrive au moins à communiquer avec le baromètre.

- Calvin
- Gyne Fécondée
- Messages : 1213
- Inscription : lun. 5 août 2013 10:41
- Localisation : Yvelines (France)
- Genre :
Re: [Tutoriel] Gérer ses colonies avec un Raspberry Pi
Les fichiers ne peuvent pas être modifiés. Pour ta deuxième et quatrième étape, les ".conf" s'ouvrent avec l'éditeur de texte mais, lors de l'enregistrement, on m'indique un message d'erreur pour dire que ce n'est pas éditable. J'ai essayé avec LibreOffice Writter mais, c'est en Read-only.
Et enfin, pour la troisième étape, le fichier existe mais, est vide...
La dernière étape a renvoyé un message d'erreur dans les deux cas.
En tout cas, merci de ton aide...
Et enfin, pour la troisième étape, le fichier existe mais, est vide...
La dernière étape a renvoyé un message d'erreur dans les deux cas.
En tout cas, merci de ton aide...
Dernière modification par Libertango le ven. 14 avr. 2017 12:01, modifié 1 fois.
Raison : "Ne" + "pas". Merci.
Raison : "Ne" + "pas". Merci.
TUER LE TEMPS EN ÉCRIVANT N'EST PAS UN CRIME
- Sareladen
- Larve 3
- Messages : 46
- Inscription : mar. 28 mars 2017 21:25
- Localisation : Ille-et-Vilaine (France)
- Genre :
- Contact :
Re: [Tutoriel] Gérer ses colonies avec un Raspberry Pi
Pour éditer les fichiers comme ça il faut utiliser la commande "sudo" (à chaque fois que tu n'as pas le droit d'éditer un truc en fait), je ne sais pas si tu sais utiliser les éditeurs de texte en ligne de commande comme nano ou vim, ils sont assez durs à prendre en main au début mais au moins tu es sûr que ça marche en faisant "sudo nano /etc/modules" en ligne de commande. Nano est le plus simple à utiliser je trouve, et il est largement suffisant juste pour ajouter deux petites lignes comme tu dois faire à chaque fois ici.
Si tu ne te sens pas de faire ça, tu peux aussi taper "sudo raspi-config" en ligne de commande et naviguer dans "paramètres avancés" -> "I2C" -> "oui" -> "oui". En faisant ça le Raspberry devrait automatiquement éditer les fichiers que j'ai mentionnés au-dessus. Une fois que c'est fait tu peux redémarrer et retenter les deux dernières commandes du message précédent, c'est normal qu'elles donnent des messages d'erreur si tu as pas pu faire les étapes précédentes.
Si tu ne te sens pas de faire ça, tu peux aussi taper "sudo raspi-config" en ligne de commande et naviguer dans "paramètres avancés" -> "I2C" -> "oui" -> "oui". En faisant ça le Raspberry devrait automatiquement éditer les fichiers que j'ai mentionnés au-dessus. Une fois que c'est fait tu peux redémarrer et retenter les deux dernières commandes du message précédent, c'est normal qu'elles donnent des messages d'erreur si tu as pas pu faire les étapes précédentes.

Dernière modification par Libertango le ven. 14 avr. 2017 12:01, modifié 1 fois.
Raison : "Tu as" et non cet horrible "T'as". Merci.
Raison : "Tu as" et non cet horrible "T'as". Merci.
Forum