web-dev-qa-db-fra.com

Mis à niveau vers Ubuntu 16.04, les dépendances MySQL-python sont rompues

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 ?

21
RyanH

J'ai finalement trouvé la solution à mes problèmes avec pip install --no-binary MySQL-python MySQL-pythona indiqué dans ce fil de discussion: MySQLdb de Python ne trouve pas libmysqlclient.dylib avec Homebrewed MySQL

24
RyanH

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
31
Cuong Tran

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
5
Warren O'Neill

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.

1
confiq

J'ai eu ce problème avec Python 3.6 ... Lorsque j'ai utilisé un environnement avec Python 3.5, cela fonctionnait parfaitement.

0
Kyle