Bonjour à tous,
J'utilise un code Python pour calculer la qualité de l'air.
J'arrive le faire tourner sur un Rapsberry après avoir fait ceci
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 chmod +x aqi.py sudo ./aqi.pySur le Raspberry, j'avais développé un code, grâce à Adafruit, pour afficher du texte sur un écran LCD.PM2.5:55.3, PM10:47.5
PM2.5:55.5, PM10:47.7
PM2.5:55.7, PM10:47.8
PM2.5:53.9, PM10:47.6
PM2.5:53.6, PM10:47.4
PM2.5:54.2, PM10:47.3
Le but de mon exercice est d'ajouter le code du LCD au code aqi.py, et je pense avoir des problèmes de version de Python, et je vais essayer de clarifier ma situation avec des questions et suggestion.
Premièrement, ces deux commandes m'exécute le code aqi.py
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sudo ./aqi.py sudo python aqi.py
Par contre
me retourne une erreur
Code python : Sélectionner tout - Visualiser dans une fenêtre à part sudo python3 aqi.py
Q1: Je pense que cela m'indique que le code n'a pas été développer pour Python3 et que la fonction cmd_set_sleep est la source de mon erreur? (j'aimerais bien avoir tout fonctionnant avec Python3.File "aqi.py", line 130, in <module>
cmd_set_sleep(0)
File "aqi.py", line 104, in cmd_set_sleep
ser.write(construct_command(CMD_SLEEP, [0x1, mode]))
File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 518, in write
d = to_bytes(data)
File "/usr/lib/python3/dist-packages/serial/serialutil.py", line 63, in to_bytes
raise TypeError('unicode strings are not supported, please encode to bytes: {!r}'.format(seq))
TypeError: unicode strings are not supported, please encode to bytes: 'ª´\x06\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ÿÿ\x06«'
Je continue sur le code LCD avant de revenir sur l'app AQI.
J'ai développe un petit code pour envoyer des messages LoRaWAN, qui fonction qu'avec Python trois.
Ceci
me retourne
Code python : Sélectionner tout - Visualiser dans une fenêtre à part sudo python radio_rfm9x.py
alors queTraceback (most recent call last):
File "radio_rfm9x.py", line 10, in <module>
import busio
ImportError: No module named busio
fonctionne.
Code python : Sélectionner tout - Visualiser dans une fenêtre à part sudo python3 radio_rfm9x.py
Malheureusement et idiotement, je ne retrouve pas (pour le moment) mes notes qui me parle de busio, mais je vais retrouver cela
Q2: Je pense que j'ai du installer busio pour python3 et pas pour python2.7. Il faudrait donc je le l'installe ainsi
Code python : Sélectionner tout - Visualiser dans une fenêtre à part pip install Adafruit-Blink
au lieux de
?
Code python : Sélectionner tout - Visualiser dans une fenêtre à part pip3 install Adafruit-Blinka
Si maintenant, je reviens su mon code aqi.py
J'ai ajouté ceci
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 # Import Blinka Libraries import busio from digitalio import DigitalInOut, Direction, Pull import board # Create the I2C interface. i2c = busio.I2C(board.SCL, board.SDA) # 128x32 OLED Display import adafruit_ssd1306 display = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c, addr=0x3c) # Clear the display. display.fill(0) display.show() width = display.width height = display.height # Puis plus bas dans le code # draw a box to clear the image display.fill(0) display.text('AQI', 35, 0, 1)
(Je précise que ceci fonctionne sur mon Raspberry pour un autre Script)
Ceci (et)
me retourne
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sudo ./aqi.py sudo python aqi.py
Ce qui reforce ma suspicious quant à busio que ne fonctionne que pour Python3.xTraceback (most recent call last):
File "radio_rfm9x.py", line 10, in <module>
import busio
ImportError: No module named busio
Si je fais
J'ai encore le même problème qu'avant, concernant cmd_set_sleep(0)
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sudo python3 aqi.py
Ma question est donc
Q3: Comment rendre tous ce code compatible avec Python3 et python2, mais en tout cas avec Python3.
Q4: Est ce que dans ce code, il y a quelque chose qui indique qu'il ne fonctionne qu'avec Python2.x?
Q5: Je suppose que sudo ./aqi.py est égal à python aqi.py, mais comment faire pour que ./aqi.py soit exécuté avec python3?
Je vous remercie pour vos clarifications
Partager