mysqlclient==1.4.6 none wheel doesn't work on ubuntu 18
I?m using pantsbuild to create a pex with SQLAlchemy==1.3.11 and mysqlclient==1.4.6. I?m going to run the pex on ubuntu 14 trusty and ubuntu 18 bionic.
To first build the wheel, I went to each ubuntu machine and ran this:
pip wheel ?no-cache-dir ?wheel-dir=./ mysqlclient==1.4.6
On the trusty machine, it created https://s3.amazonaws.com/aiq-public/ubuntu14/index.html. However on the bionic machine it created https://s3.amazonaws.com/aiq-public/ubuntu18/index.html.
I was very confused, but I just kept the ?none? wheel since that should be OS independent. I built the pex locally on each box, and it worked fine on trusty, however on bionic I saw this error:
File "/home/ubuntu/.pex/install/SQLAlchemy-1.0.11-cp27-none-linux_x86_64.whl.2ad4de6e38cfa6e6073ca829b9a827ab4c9a46d8/SQLAlchemy-1.0.11-cp27-none-linux_x86_64.whl/sqlalchemy/engine/strategies.py", line 75, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/home/ubuntu/.pex/install/SQLAlchemy-1.0.11-cp27-none-linux_x86_64.whl.2ad4de6e38cfa6e6073ca829b9a827ab4c9a46d8/SQLAlchemy-1.0.11-cp27-none-linux_x86_64.whl/sqlalchemy/dialects/mysql/mysqldb.py", line 92, in dbapi
File "/home/ubuntu/.pex/install//mysqlclient-1.4.6-cp27-none-linux_x86_64.whl/MySQLdb/__init__.py", line 19, in <module>
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
That seemed very strange to me, so then I changed the bionic build to point to the os-specific wheel, and then it started working.
Is there some reason the ?none? wheel does not work on bionic? Somehow it seemed to be picking up the wrong libmysqlclient library? Note I have ?libmysqlclient.so? installed on both trusty (mysql 5.6) and bionic (mysql 5.7). They are different versions, but I didn?t think it mattered, if using a ?none? wheel then it should build on the box using whatever libraries the OS has, right?