web-dev-qa-db-fra.com

Erreur lors de l'installation de mysql-python: bibliothèque introuvable pour -lssl

Je n'arrive pas à installer mysql-python. Créé un nouveau virtualenv et lors de l'installation de mysql-python ... voici le message d'erreur:

(env)$ pip install mysql-python
Collecting mysql-python
...

clang -bundle -undefined dynamic_lookup -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk build/temp.macosx-10.12-x86_64-2.7/_mysql.o -L/usr /local/Cellar/mysql/5.7.16/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.12-x86_64-2.7/_mysql.so
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1

En utilisant homebrew, j'ai installé:

Déjà essayé de brew link mais brew refuse de le faire.

Le système d'exploitation est MacOS Sierra.

Quelqu'un peut-il aider? Merci!

11
danielcorreia

Résolu avec ces étapes:

brew uninstall mysql
brew install mysql-connector-c
pip install mysql-python
brew unlink mysql-connector-c
brew install mysql

Vous avez trouvé la réponse ici https://stackoverflow.com/a/25920020/576192

Je ne sais pas si c'est la bonne façon, mais c'est comme ça que j'ai réussi à la résoudre. 

12
danielcorreia

Vous pouvez définir le chemin de la bibliothèque ssl explicitement.

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient
8
Hoseung Kim

J'ai finalement pu le réparer en

xcode-select --install

J'étais sûre de l'avoir déjà fait… mais évidemment, je ne l'avais pas fait Ça vaut vraiment le coup!

7
Jonny

J'ai essayé de mettre à jour le CLT de Xcode, de désinstaller mysql, de vérifier mysql_config, etc., mais je n'ai pas eu de chance.

J'ai trouvé que courir brew info ssl montre:

...

For compilers to find openssl you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"

...

L'exécution de ces deux commandes, suivie de pip install, a fonctionné pour moi (dans mon cas, lors de l'installation de mysqlclient).

2
alstr

Je suis capable de corriger l'erreur en exécutant:

pip install -r requirements.txt --global-option=build_ext --global-option="-I/usr/local/opt/openssl/include" --global-option="-L/usr/local/opt/openssl/lib"
1
Nate

Si vous souhaitez installer mysql-python, je vous suggère plutôt d'installer mysqlclient. Les auteurs de ces deux modules sont les mêmes. De loin, les auteurs se tournent tous pour continuer à maintenir mysqlclient . mysqlclient prend en charge Python 2 et Python 3. Et vous pouvez utiliser les mêmes codes que mysql-python. Blew est ma solution d'installation pour vous.

$ brew info openssl
$ brew unlink mysql-connector-c
$ brew install mysql
$ brew link --overwrite mysql-connector-c
$ pip install mysqlclient

S'il y a une erreur avant pip install mysqlclient. Veuillez le corriger en fonction de la réponse de methane ..__ Et exécutez pip install mysqlclient à nouveau.

1
Tom

Travaillé pour moi en faisant cela 

$ brew uninstall mysql
$ brew install mysql-connector-c
$ brew unlink mysql-connector-c
$ brew install mysql
$ pip install mysql-python

Ce qui est une version légèrement modifiée de la recette ci-dessus (note: pip install à la fin!)

1
magicrebirth

Ou téléchargez et installez .dmg depuis le site de développement MySQL: https://dev.mysql.com/downloads/file/?id=467834

0
Franke

Pour ceux d'entre vous qui installent MySQL v5.7 avec Brew

Désinstallez mysql-connector-c

$ brew uninstall mysql-connector-c

Installez une version spécifique, vous devrez probablement désinstaller les autres versions installées

$ brew install [email protected]

Vous devrez l'ajouter à la PATH, puisqu'il s'agit de formules «en fût uniquement», elles sont imprimées après son installation

$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

Remplacez ~/.zshrc par le fichier approprié.

Installer mysql-connector-c

$ brew install mysql-connector-c

Vérifiez qu'il est installé correctement

$ which mysql
# /usr/local/opt/[email protected]/bin/mysql

$ mysql_config
# Usage: /usr/local/opt/[email protected]/bin/mysql_config [OPTIONS]
Compiler: Clang 10.0.0.10001145
Options:
        --cflags         [-I/usr/local/opt/[email protected]/include/mysql ]
        --cxxflags       [-I/usr/local/opt/[email protected]/include/mysql ]
        --include        [-I/usr/local/opt/[email protected]/include/mysql]
        --libs           [-L/usr/local/opt/[email protected]/lib -lmysqlclient -lssl -lcrypto]
        --libs_r         [-L/usr/local/opt/[email protected]/lib -lmysqlclient -lssl -lcrypto]
        --plugindir      [/usr/local/opt/[email protected]/lib/plugin]
        --socket         [/tmp/mysql.sock]
        --port           [0]
        --version        [5.7.24]
        --libmysqld-libs [-L/usr/local/opt/[email protected]/lib -lmysqld -lssl -lcrypto]
        --variable=VAR   VAR is one of:
                pkgincludedir [/usr/local/opt/[email protected]/include/mysql]
                pkglibdir     [/usr/local/opt/[email protected]/lib]
                plugindir     [/usr/local/opt/[email protected]/lib/plugin]

Maintenant, installez mysqlclient

$ pip install mysqlclient
0
Edgar Ortega