MySQLdb for 3.6 on RHEL7
On Tue, Aug 13, 2019 at 9:59 AM Chris Angelico <rosuav at gmail.com> wrote:
> On Tue, Aug 13, 2019 at 11:33 PM Larry Martell <larry.martell at gmail.com> wrote:
> > I am trying to install MySQLdb (https://pypi.org/project/mysqlclient/)
> > for python3.6 on RHEL7.
> > When I import it, it fails:
> > # python3.6
> > Python 3.6.8 (default, Jun 11 2019, 15:15:01)
> > [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
> > Type "help", "copyright", "credits" or "license" for more information.
> > >>> import MySQLdb
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > File "/usr/local/lib64/python3.6/site-packages/mysqlclient-1.4.4-py3.6-linux-x86_64.egg/MySQLdb/__init__.py",
> > line 18, in <module>
> > from . import _mysql
> > ImportError: /usr/local/lib64/python3.6/site-packages/mysqlclient-1.4.4-py3.6-linux-x86_64.egg/MySQLdb/_mysql.cpython-36m-x86_64-linux-gnu.so:
> > undefined symbol: mysql_kill
> > Has anyone seen and resolved this?
> Not specifically, but that looks like a versioning conflict. Most
> likely, your mysqlclient is too old for MySQLdb to connect to.
> Did you get one of them from your system package manager and the other
> from pip? If so, try to get both from the same place.
So I have MySQL from the system package manager, but mysqlclient is
not available there. And I was not able to get that from pip either,
as the install failed. I had to download the source, edit the site.cfg
file and build it. But I just found python36-mysql.x86_64 as a package
so I uninstalled mysqlclient and installed that from the repo. That
did not get the above error, but now I get this:
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is
required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or
newer is required; you have 1.3.12.