What is PyMySQL and how does it differ from MySQLdb? Can it affect Django deployment?

PyMySQL and MySQLdb provide the same functionality – they are both database connectors. The difference is in the implementation where MySQLdb is a C extension and PyMySQL is pure Python.

There are a few reasons to try PyMySQL:

  • it might be easier to get running on some systems
  • it works with PyPy
  • it can be “greened” and works with gevent

The proper way to use it with Django is to import it and tell it to impersonate MySQLdb in your top-level file, usually manage.py. Put the following code at the very top of your manage.py (or whatever file you call when starting your server):

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

Leave a Comment