#1 Le 08/08/2013, à 18:18
- mauribilis
API Mysql Python 2.7 ubuntu 12.04.2
Salut à tous,
je développe un pilote en python, j’ai besoin d'utiliser une base de données mysql mais comment installer l'api mysql pour python avec ubuntu ?
merci d'avance
Hors ligne
#2 Le 09/08/2013, à 08:26
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
up
Hors ligne
#3 Le 09/08/2013, à 11:01
- Jules Petibidon
Re : API Mysql Python 2.7 ubuntu 12.04.2
yop
sudo apt-get install python-mysqldb
Hors ligne
#4 Le 09/08/2013, à 11:03
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
merci beaucoup ça marche
Hors ligne
#5 Le 09/08/2013, à 18:41
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
j'ai écrit un code d'update de valeur d'une BDD, mais quand j'implante ce code dans un programme plus lourd le programme beug entièrement
code mysql seul :
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect("localhost","root","mot_de_passe","composant_live" )
cursor = db.cursor()
reponse = "88656797"
sql = "UPDATE capteurs_solaires SET angle_incidence=%s WHERE id=1" % \
(reponse )
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
code avec programme de communication :
#!/usr/bin/python
import serial, time, MySQLdb
arduino = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
arduino.open()
try:
while True:
arduino.write('p')
reponse = arduino.readline()
print reponse
except KeyboardInterrupt:
arduino.close()
else: print 'Echec de la transmission !'
finally:
db = MySQLdb.connect("localhost","root","mot_de_passe","composant_live" )
cursor = db.cursor()
sql = "UPDATE capteurs_solaires SET angle_incidence=%s WHERE id=1" % \
(reponse )
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
Dernière modification par mauribilis (Le 09/08/2013, à 18:43)
Hors ligne
#6 Le 10/08/2013, à 10:15
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
up
Hors ligne
#7 Le 10/08/2013, à 10:42
- Jules Petibidon
Re : API Mysql Python 2.7 ubuntu 12.04.2
Ce serait pas mal de fournir les messages d'erreur, ce serait un peu plus parlant que "mon programme beug"
sinon dans ton premier bloc except, tu as des lignes indentées n'importe comment et qui ne semblent rien vouloir dire.
Hors ligne
#8 Le 11/08/2013, à 08:58
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
désolé mais j'ai formaté mon PC hier il faut que je réinstalle un système de log, j'ai essayé de modifier mon code mais il ne marche toujours pas (je suis débutant en Python)
#!/usr/bin/python
import serial, time, MySQLdb
db = MySQLdb.connect("localhost","root","mot_de_passe","composant_live" )
arduino = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
arduino.open()
try:
while True:
arduino.write('p')
reponse = arduino.readline()
cursor = db.cursor()
sql = "UPDATE capteurs_solaires SET angle_incidence=%s WHERE id=1" % \
(reponse )
print reponse
cursor.execute(sql)
db.commit()
except KeyboardInterrupt:
arduino.close()
#except:
# db.rollback()
# db.close()
Hors ligne
#9 Le 11/08/2013, à 11:23
- Jules Petibidon
Re : API Mysql Python 2.7 ubuntu 12.04.2
La première chose à savoir avec python, c'est que l'indentation est TRES importante. Elle fait partie intégrante de la syntaxe de ce langage.
Fais donc très attention à l'organisation de l'indentation de tes différentes lignes, et ça ira peut-être mieux
Si tu apportes du code par copier/coller depuis autre chose, prend toujours bien soit de le remettre en forme.
Et en tant que débutant, commence par des petits exercices pour apprendre les subtilités du langage plutôt que de partir directement dans un code trop compliqué.
Hors ligne
#10 Le 11/08/2013, à 16:57
- mauribilis
Re : API Mysql Python 2.7 ubuntu 12.04.2
j'ai revu mon code mysql est correctement intégré la modification dans la bdd marche mais bizzarement dans mon code de communication série la récupération de donnée envoyé par la carte Arduino connecté par USB ne marche plus (la variable reponse est vide et si je veux qu'une valeur soit entrée en bdd il faut que je done moi-même une valeur à la variable reponse mais elle ne prend pas la valeur renvoyée par la carte Arduino)
code Python :
#!/usr/bin/python
import serial
import time
import MySQLdb
arduino = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(2)
print("intialisation...")
arduino.open()
arduino.write('H')
reponse = arduino.readline()
print reponse
#print("RELAIS ON")
time.sleep(2)
arduino.write('L')
#print("RELAIS OFF")
time.sleep(2)
arduino.close()
db = MySQLdb.connect("localhost","root","mot_de_passe","composant_live" )
cursor = db.cursor()
sql = "UPDATE capteurs_solaires SET angle_incidence=%s WHERE id=1" % \
(reponse )
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
code Arduino (si utile) :
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char c = Serial.read();
if (c == 'H') {
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
Serial.print("RELAIS ON");
}
else if (c == 'L') {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
Serial.print("RELAIS OFF");
}
}
}
Hors ligne