2017-09-05 5 views
0

Je suis en train de traquer un problème lors de l'installation pyodbc (pip install pyodbc) sous Mac OS X 10.12.6 (Sierra) qui se traduit par l'erreur suivante:Comment résoudre l'erreur du lieur (ld) pour la bibliothèque "odbc" introuvable (-lodbc)?

ld: library not found for -lodbc 

L'éditeur de liens (ld) est à la recherche de la bibliothèque "odbc" et ne pas le trouver. Je suppose que l'éditeur de liens peut gérer une bibliothèque dynamique, mais peut-être qu'il recherche un fichier de bibliothèque statique (c'est-à-dire libodbc.a).

Maintenant, je l'avais installé unixODBC comme ceci:

cd ~/Downloads 
curl -O ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz 
tar xzvf unixODBC*.tar.gz 
cd unixODBC* 
./configure 
make 
sudo make install 

Ma question est malheureusement un peu large parce que je ne suis pas très bien informé sur ce sujet. Ceux-ci pourraient me conduire dans la bonne direction: Où est ld à la recherche de bibliothèques? Quels noms de bibliothèques (fichiers) chercherait-il? Je vois libodbc.dylib dans /usr/local/lib; Ne devrait-ce pas être la bibliothèque qui est liée? Et ... Comment puis-je déboguer plus loin?

P.S. - J'essaie de faire cela sans utiliser Homebrew.

Répondre

0

ld cherche à /usr/lib/ pour libodbc.dylib mais ce répertoire ne peut pas être modifié en raison de SIP (Système de protection de l'intégrité) mis en œuvre à El Capitan et au-delà.

Étant donné que le fichier de bibliothèque est réellement à /usr/local/lib/, j'ai corrigé le problème en ajoutant -L/usr/local/lib aux paramètres ld.

Pour les packages Python, ajouté ['library_dirs'] = '/usr/local/lib' à vos paramètres de compilation. Je l'ai fait pour un clone local de Pyodbc et ça a marché!