Je viens de mettre à niveau mon installation Ubuntu vers la version 16.04 et cela semble avoir rompu mes dépendances mysql dans le paquet MySQL-python.
Voici mon message d'erreur:
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
Donc, fondamentalement, import_mysql recherche un fichier so
qui n’existe pas car, dans Ubuntu 16.04, j’ai installé libmysqlclient20
. mes bibliothèques python sont à jour avec les dernières versions.
(J'ai essayé d'exécuter pip install --upgrade mysql-python
qui indiquait que c'était à jour).
Avez-vous des suggestions ?
J'ai finalement trouvé la solution à mes problèmes avec pip install --no-binary MySQL-python MySQL-python
a indiqué dans ce fil de discussion: MySQLdb de Python ne trouve pas libmysqlclient.dylib avec Homebrewed MySQL
Merci pour Largaroth. Si vous utilisez mysqlclient
sur Ubuntu 16.04 et avez l’erreur:
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Vous pouvez réparer:
Sudo -H pip uninstall mysqlclient
Sudo -H pip install --no-binary mysqlclient mysqlclient
J'ai eu le même problème. J'ai désinstallé et réinstallé MySQL-python:
pip uninstall MySQL-python
pip install MySQL-python
Mon problème était que j'utilisais la timonerie d'un ancien système d'exploitation.
Le problème a été résolu lorsque j'ai désinstallé/installé le package ou mis à jour la timonerie ...
De docs:
http://mysql-python.sourceforge.net/FAQ.html#importerror
Cela signifie que vous avez une version de MySQLdb compilée avec une version de MySQL et que vous essayez maintenant de l'exécuter avec une autre version. La version de la bibliothèque partagée a tendance à changer entre les versions majeures.
Solution: reconstruisez MySQLdb ou obtenez la version correspondante de MySQL.
J'ai eu ce problème avec Python 3.6 ... Lorsque j'ai utilisé un environnement avec Python 3.5, cela fonctionnait parfaitement.