Python >> Tutoriel Python >  >> Python Tag >> MySQL

AttributeError :le module 'mysql' n'a pas d'attribut 'connector'

La solution est d'exécuter :

import mysql.connector # or from mysql import connector

Parce que le module connector n'est disponible que lorsque vous l'importez explicitement :

import mysql

print(dir(mysql))
>>> ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
'__package__', '__path__', '__spec__']

import mysql.connector

print(dir(mysql))
>>> ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
'__package__', '__path__', '__spec__', 'connector']

Le __init__ fichier dans le module mysql n'importe pas le module connector .

mysql
|_______ __init__.py # no import at this level
|_______ connector
         |________ __init__.py

Cela pourrait fonctionner implicitement si connector a été importé dans __init__ avec :from . import connector .


J'avais toujours la même erreur après import mysql.connector et vérification des autorisations. J'exécutais mon script sur MacOS en utilisant bash. Après des heures de recherche d'une solution, je suis tombé sur ce post sur les forums mysql :https://forums.mysql.com/read.php?50,584171,584729#msg-584729

L'affiche mentionne que votre script python ne peut pas être nommé mysql.py Mon script s'appelait types.py , donc je l'ai renommé en setup-types.py et cela a résolu mon problème. J'espère que cela fera gagner du temps aux autres lorsqu'ils traiteront cette même erreur.