Use mysql.connector , but get ImportError: Missing optional dependency 'SQLAlchemy'

Viewed 1222

I work on a program for two months. Today I suddenly got an error when connecting to the database while using mysql.connector.

Interestingly, this error is not seen when running previous versions.

import mysql.connector
import pandas as pd

mydb = mysql.connector.connect(host="localhost", user="root", password="*****", 
database="****")

Q = f'SELECT * FROM table'
df = pd.read_sql_query(Q, con=mydb)

print(df)

but I get this error :

Traceback (most recent call last):
df = pd.read_sql_query(Q, con=mydb)
File "g.v1.6\venv\lib\site-packages\pandas\io\sql.py", line 
398, in read_sql_query
pandas_sql = pandasSQL_builder(con)
File "g.v1.6\venv\lib\site-packages\pandas\io\sql.py", line 
750, in pandasSQL_builder
sqlalchemy = import_optional_dependency("sqlalchemy")
File "g.v1.6\venv\lib\site- 
packages\pandas\compat\_optional.py", line 129, in import_optional_dependency
raise ImportError(msg)
ImportError: Missing optional dependency 'SQLAlchemy'.  Use pip or conda to install 
SQLAlchemy.

What has this got to do with SQLAlchemy??

1 Answers

I just ran into something similar. It looks like Pandas 1.4 was released on January 22, 2022: https://pandas.pydata.org/docs/dev/whatsnew/v1.4.0.html

It has an "optional" dependency on SQLAlchemy, which is required to communicate with any database other than sqlite now, as the comment by snakecharmerb mentioned. Once I added that to my requirements and installed SQLAlchemy, it resolved my problem.

Related