La soluzione è eseguire :
import mysql.connector # or from mysql import connector
Perché il modulo connector
è disponibile solo quando lo importi esplicitamente :
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']
Il __init__
file nel modulo mysql
non importa il modulo connector
.
mysql
|_______ __init__.py # no import at this level
|_______ connector
|________ __init__.py
Questo potrebbe funzionare in modo implicito se connector
è stato importato all'interno di __init__
con :from . import connector
.