de l'interpréteur je peux très bien sortir >>> depuis MySQLdb. Donc, je suppose que le module a effectivement été chargé. Ma source se présente comme suit:python2.6 avec MySQLdb, NameError 'MySQLdb' non défini
from Tkinter import *
from MySQLdb import *
"""
Inventory control for Affordable TowingFunctions:
connection() - Controls database connection
delete() - Remove item from database
edit() - Edit item's attributes in database
lookup() - Lookup an item
new() - Add a new item to database
receive() - Increase quantity of item in database
remove() - Decrease quantity of item in database
report() - Display inventory activity
transfer() - Remove item from one location, receive item in another"""
def control():
....dbInfo = { 'username':'livetaor_atowtw', 'password':'spam', \
....'server':'eggs.com', 'base':'livetaor_towing', 'table':'inventory' }
....def testConnection():
........sql = MySQLdb.connect(user=dbInfo[username], passwd=dbInfo[password], \
........host=dbInfo[server], db=dbInfo[base])
........MySQLdb.mysql_info(sql)....testConnection()
control()
cela me donne:
[email protected]:~/python/towing/inventory$ python inventory.py
Traceback (most recent call last):
..File "inventory.py", line 53, in
....control()
..File "inventory.py", line 26, in control
....testConnection()
..File "inventory.py", line 22, in testConnection
....sql = MySQLdb.connect(user=dbInfo[username], passwd=dbInfo[password], \
NameError: global name 'MySQLdb' is not defined
1) où vais-je tort?
2) d'autres pièges que vous voyez?
3) des conseils sur la façon de vérifier une connexion valide à la base de données (pas seulement le serveur)?
ma semaine, l'esprit faible a oublié l'importation, et la façon dont elle affecte l'espace de noms. Merci de me rappeler combien je suis un idiot. Vos explications étaient bien au-dessus de la moyenne! J'essaierai * de ne plus oublier cette leçon. – brad