Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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