Je suis nouveau chez python, actuellement je travaille sur un tracker GPS avec qui interagit avec Google maps en utilisant un Arduino Uno. Je reçois cette erreur et il ne me laisse pas exécuter le script .py pour mon tcpServer c'est le script entier.NameError: nom global 'message' n'est pas défini
#!/Usr/bin/env python
import socket
import MySQLdb
TCP_IP = 'my machine IP'
TCP_PORT = 32000
BUFFER_SIZE = 40
# ClearDB. Deletes the entire tracking table
def ClearDB(curs,d):
curs.execute ("""
INSERT INTO gmaptracker (lat, lon)
VALUES (0.0,0.0)""")
d.commit()
# Connect to the mySQL Database
def tServer():
try:
db = MySQLdb.connect (host = "my host",
user = "my user",
passwd = "my password",
db = "gmap")
except MySQLdb.Error, e:
print "Error %d: %s" %(e.args[0], e.args[1])
sys.exit(1);
cursor = db.cursor()
# Start with a fresh tracking table
ClearDB(cursor,db)
# Set up listening Socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((TCP_IP, TCP_PORT))
print "Listening...."
s.listen(1)
conn, addr = s.accept()
print 'Accepted connection from address:', addr
except socket.error (message):
if s:
s.close()
print "Could not open socket: " + message
cursor.close()
conn.close()
db.close()
sys.exit(1)
try:
while 1:
data = conn.recv(BUFFER_SIZE)
if not data:break
str1,str2 = data.split("Long: ")
str1 = str1.split("Lat: ")[1]
latitude = float(str1)
longitude = float(str2)
cursor.execute ("""
INSERT INTO gmaptracker (lat, lon)
VALUES (%s,%s)""", (latitude,longitude))
db.commit()
except KeyboardInterrupt:
ClearDB(cursor,db);
cursor.close()
conn.close()
db.close()
if __name__ == '__main__':
tServer()
et ceci est l'erreur que je reçois
Traceback (most recent call last):
File "tcpServer.py", line 79, in <module>
tServer()
File "tcpServer.py", line 48, in tServer
except socket.error(message):
NameError: global name 'message' is not defined
Si quelqu'un peut me aider à ceci, je serais très heureux, comme je l'ai dit je suis nouveau chez Python, je cours aussi python 2.7 si cela aide. Merci d'avance
Merci qui a aidé mais maintenant je reçois ce: retraçage (appel le plus récent en dernier): Fichier « tcpServer.py », line80 , dans tServer() Fichier "tcpServer.py", ligne 54, dans tServer conn.close() –
Vous essayez de fermer 'conn', mais le fichier' socket.error' est lancé * avant * que cette variable soit définie. –
mais la variable est définie avant l'exception ... –