Modulenotfounderror: No Module Named 'mysqldb'
Solution 1:
I have read that mysqldb is not supported by python3
And it looks like when you are trying to connect to your database you are using mysql db to connect to the database by default!
you need to change it by editing your DATABASE_URI configuration
But before you need to install the connector extension :
with this command :
pip install mysql-connector-python
And according to this documentation you can edit your DATABASE_URI and change the default connector like this :
DATABSE_URI='mysql+mysqlconnector://{user}:{password}@{server}/{database}'.format(user='your_user', password='password', server='localhost', database='dname')
I hope this will help...
Solution 2:
You can install mysqlclient
with pip
If using Python3, try this:
pip3 install mysqlclient
or in Python2
pip install mysqlclient
Solution 3:
To install MySQLdb
, provided pip
or pip3
is installed on your machine:
pip install mysqlclient
Solution 4:
import pymysql
pymysql.install_as_MySQLdb()
Solution 5:
I have the same problem like you. Here is my solution:
Reason: python3.X does not support MySQLdb,so you need to change to pymysql model
Answer : Change the content of import.
1):
replace all MySQLdb with pymysql
2):
defreconnect(self):
"""Closes the existing database connection and re-opens it."""
self.close()
self._db = pymysql.connect(**self._db_args)# MySQLdb.connect(**self._db_args)
self._db.autocommit(True)
3)
if pymysql isnotNone:
# Fix the access conversions to properly recognize unicode/binary
FIELD_TYPE = pymysql.connections.FIELD_TYPE # MySQLdb.constants.FIELD_TYPE
FLAG = pymysql.constants.FLAG# MySQLdb.constants.FLAG
CONVERSIONS = copy.copy (pymysql.converters.conversions)# (MySQLdb.converters.conversions)
field_types = [FIELD_TYPE.BLOB, FIELD_TYPE.STRING, FIELD_TYPE.VAR_STRING]
if'VARCHAR'invars(FIELD_TYPE):
field_types.append(FIELD_TYPE.VARCHAR)
for field_type in field_types:
# CONVERSIONS[field_type] = [(FLAG.BINARY, str)] + CONVERSIONS[field_type]
CONVERSIONS[field_type] = [(FLAG.BINARY, str)].append(CONVERSIONS[field_type])
# Alias some common MySQL exceptions
IntegrityError = pymysql.IntegrityError# MySQLdb.IntegrityError
OperationalError = pymysql.OperationalError# MySQLdb.OperationalError
4):
def__init__(self, host, database, user=None, password=None,
max_idle_time=7 * 3600, connect_timeout=10,# 设置连接超时时间,时间是秒
time_zone="+0:00", charset = "utf8", sql_mode="TRADITIONAL"):
5):
defquery(self, query, *parameters, **kwparameters):
"""Returns a row list for the given query and parameters."""
cursor = self._cursor()
try:
self._execute(cursor, query, parameters, kwparameters)
column_names = [d[0] for d in cursor.description]
return [Row(itertools.zip_longest(column_names, row)) for row in cursor]
finally:
cursor.close()
Post a Comment for "Modulenotfounderror: No Module Named 'mysqldb'"