A solução é executar:
import mysql.connector # or from mysql import connector
Porque o módulo
connector
só está disponível quando você o importa explicitamente: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']
O
__init__
arquivo no módulo mysql
não importa o módulo connector
. mysql
|_______ __init__.py # no import at this level
|_______ connector
|________ __init__.py
Isso pode funcionar implicitamente se o
connector
foi importado dentro de __init__
com :from . import connector
.