Python >> Python tutoriál >  >> Python Tag >> MySQL

Pythonská MySQLdb nemůže najít libmysqlclient.dylib s Homebrewed MySQL

S tímto problémem jsem se také setkal. Odinstaloval jsem MySQL-python a poté jej nainstaloval.

pip uninstall MySQL-python
pip install MySQL-python

Aktualizovat (na základě komentářů)

V některých případech může být nutné provést druhý (instalační) krok následujícím způsobem:

pip install --no-binary MySQL-python MySQL-python

no-binary možnost je, že ji pip vytvoří čerstvě a odkazuje na správnou knihovnu:

--no-binary <format_control>

Nepoužívejte binární balíčky. Lze dodat vícekrát a pokaždé přidá ke stávající hodnotě. Přijímá buď :all:pro deaktivaci všech binárních balíčků, :none:pro vyprázdnění sady, nebo jeden nebo více názvů balíčků s čárkami mezi nimi. Všimněte si, že kompilace některých balíčků je složitá a může se stát, že se instalace nepodaří, když je na nich použita tato volba.

Poznámka: Všimněte si, že MySQL-python je třeba zmínit dvakrát. Jak je uvedeno výše, první výskyt je název balíčku, na který se má použít no-binary volba na, druhá určuje balíček, který se má nainstalovat.


Musíte použít dev verzi mysqlclient :

pip install git+https://github.com/PyMySQL/[email protected]

Než jsem měl poslední verzi PyPI (1.3.7) na Pythonu 3.4 a hledala libmysqlclient.18.dylib (z MySQL 5.6), zatímco já jsem měl pouze libmysqlclient.20.dylib (od MySQL 5.7).

Pokud používáte Python 3, MySQL-python není možnost (a mysqlclient je jeho novější verze).


Pokud narazíte na problém s chybějícím libmysqlclient.18.dylib :

  1. stáhněte si mysql 5.6 z oficiálního odkazu:https://dev.mysql.com/downloads/mysql/

  2. nainstalovat

  3. v terminálu - mdfind libmysqlclient | grep .18.

  4. zkopírujte výstup

  5. sudo ln -s [the output from previous command] /usr/local/lib/libmysqlclient.18.dylib