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!
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.
Vous pouvez définir le chemin de la bibliothèque ssl explicitement.
LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient
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!
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
).
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"
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.
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!)
Ou téléchargez et installez .dmg depuis le site de développement MySQL: https://dev.mysql.com/downloads/file/?id=467834
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