Upgraded to Ubuntu 16.04 now MySQL-python dependencies are broken

RyanH picture RyanH · Apr 22, 2016 · Viewed 18.7k times · Source

I just upgraded my Ubuntu install to 16.04 and this seems to have broken my mysql dependencies in the MySQL-python package.

Here is my error message:

  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 386, in create_engine
return strategy.create(*args, **kwargs)
  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 75, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 92, in dbapi
return __import__('MySQLdb')
  File "/opt/monitorenv/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

So basically the import_mysql is looking for an so file that doesn't exist because in Ubuntu 16.04, I have libmysqlclient20 installed. And libmysqlclient18 is not available. As far as I am aware (or at least I believe) my python libraries are up to date with the latest versions.

(I tried running pip install --upgrade mysql-python which indicated it was up to date).

Do you guys have any suggestions ?

Answer

Cuong Tran picture Cuong Tran · May 3, 2016

Thank for Largaroth. If you use mysqlclient on Ubuntu 16.04 and have error: ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

You can fix:

sudo -H pip uninstall mysqlclient

sudo -H pip install --no-binary mysqlclient mysqlclient