Django: how to install mysql/connector python with pip3

39,895

Solution 1

If you read the documentation, you will see that the native MySQLdb driver doesn't support Python 3. You have two options:

A mysqldb fork

There is a fork that supports Python 3. Read its Github repo to know how to install with your system. For Ubuntu do apt-get install python-mysqldb

MySQL connector

Install from venv as you did with pip install mysql-connector-python --allow-external mysql-connector-python. Then read their documentation for Django and modify your settings.py file to have it like:

DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}

Pay attention to the connector value mysql.connector.django :-)

Solution 2

The version of mysql-connector that pip installs doesn't work with Django 1.8. There is a fixed version on github. The command to install from there is

pip install --allow-all-external git+git://github.com/multiplay/mysql-connector-python

That one works with Django 1.8.

Share:
39,895
Randy Tang
Author by

Randy Tang

I am interested in web development using HTML5, CSS3, jQuery, Python, Django, Postgres, Heroku, and Amazon S3 and SES.

Updated on June 01, 2020

Comments

  • Randy Tang
    Randy Tang almost 4 years

    I am working on projects based on Django 1.7 and Python 3.4. However, I had problems installing MySQL/Connector Python with pip3.

    According to this document, MySQL/Connector Python supports Python 3. I used to install MySQL-python in Python with command pip install MySQL-python.

    This download page only provides .deb files for installation on Ubuntu (btw, the installation also has conflict problems)

    I tried to install with:

    pip3 install mysql-connector-python --allow-external mysql-connector-python
    

    No error messages. But when I run the Django app, I got the following error message:

    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
    

    Question: So, how do I install MySQL/Connector Python into a virtual environment with pip3? Or is it supposed to be installed into the system, instead of a virtual environment?