web-dev-qa-db-fra.com

Mac OS X - EnvironmentError: mysql_config introuvable

Tout d'abord, oui, j'ai déjà vu ceci: 

L'installation de pip mysql-python échoue avec EnvironmentError: mysql_config introuvable

Le problème

J'essaie d'utiliser Django sur un projet Google App Engine. Cependant, je n'ai pas pu démarrer car le serveur ne parvient pas à démarrer correctement pour les raisons suivantes: 

ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

J'ai fait des recherches et tout indiquait qu'il fallait installer Mysql-python, car ce n'est apparemment pas sur mon système. J'ai effectivement essayé de le désinstaller et j'ai obtenu ceci: 

Cannot uninstall requirement mysql-python, not installed

Chaque fois que j'essaie réellement d'installer via: 

Sudo pip install MySQL-python

Je reçois une erreur en disant: 

raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

J'ai déjà essayé de courir: 

export PATH=$PATH:/usr/local/mysql/bin

mais cela n'a pas semblé aider, car j'ai à nouveau exécuté la commande d'installation et celle-ci a toujours échoué. 

Des idées? 

S'il vous plaît noter que je ne suis pas sur une verticale. 

87
daniel_c05

Ok, tout d’abord, laissez-moi vérifier si je suis sur la même page que vous:

  • Vous avez installé python
  • Vous avez fait brew install mysql
  • Vous avez fait export PATH=$PATH:/usr/local/mysql/bin
  • Et finalement, vous avez utilisé pip install MySQL-Python (ou pip3 install mysqlclient si vous utilisiez python 3)

Si vous avez fait toutes ces étapes dans le même ordre et que vous avez toujours une erreur, continuez jusqu'à la fin, mais si vous n'avez pas suivi ces étapes exactes, essayez de les suivre depuis le début.

Donc, vous avez suivi les étapes et vous obtenez toujours une erreur, eh bien, il y a quelques choses que vous pouvez essayer:

  1. Essayez de lancer which mysql_config à partir de bash. Il ne sera probablement pas trouvé. C'est pourquoi la construction ne le trouve pas non plus. Essayez d'exécuter locate mysql_config et voyez si quelque chose revient. Le chemin d'accès à ce fichier binaire doit figurer soit dans la variable d'environnement $ PATH de votre shell, soit explicitement dans le fichier setup.py du module en supposant qu'il recherche un emplacement spécifique pour ce fichier. 

  2. Au lieu d'utiliser MySQL-Python, essayez d'utiliser 'mysql-connector-python', il peut être installé avec pip install mysql-connector-python. Vous trouverez plus d’informations à ce sujet ici et ici .

  3. Recherchez manuellement l'emplacement de 'mysql/bin', 'mysql_config' et de 'MySQL-Python' et ajoutez-les tous à la variable d'environnement $ PATH.

  4. Si toutes les étapes ci-dessus échouent, vous pouvez essayer d'installer «mysql» à l'aide de MacPorts. Dans ce cas, le fichier «mysql_config» s'appellera en réalité «mysql_config5». Dans ce cas, vous devrez le faire après avoir installé: export PATH=$PATH:/opt/local/lib/mysql5/bin. Vous pouvez trouver plus de détails ici .

Note1: J'ai vu des gens dire qu'installer python-dev et libmysqlclient-dev avait également aidé, mais je ne sais pas si ces packages sont disponibles sur Mac OS.

Note2: Veillez également à exécuter les commandes en tant que root.

J'ai eu mes réponses de (à part mon cerveau) de ces endroits (peut-être pourriez-vous les regarder pour voir si cela aiderait): 1 , 2 , 3 , 4 .

J'espérais avoir aidé et serais heureux de savoir si cela fonctionnait ou non. Bonne chance.

275
user3429036

Je déboguais ce problème depuis toujours - 3 heures 17 minutes. Ce qui m'a particulièrement énervé, c'est que j'avais déjà installé SQL sur mon système auparavant mais que pip/pip3 ne le reconnaissait pas. Ces discussions ci-dessus et de nombreuses autres pour lesquelles j'ai parcouru Internet ont été utiles pour éclaircir le problème mais n'ont pas résolu le problème.

RÉPONSE

Pip recherche les fichiers binaires mysql dans le répertoire Homebrew, qui est situé par rapport à Macintosh HD @

usr/local/Cellar/

alors j'ai trouvé que cela vous demandait de faire quelques changements

étape 1: Téléchargez MySql si ce n’est pas déjà fait https://dev.mysql.com/downloads/

Étape 2: localisez-le par rapport à Macintosh HD et cd 

usr/local/mysql/bin

Étape 3: Une fois sur place, ouvrez le terminal et utilisez un éditeur de texte de choix - je suis moi-même un néo-conservateur, alors je l'ai tapé (ça ne vient pas automatiquement avec Mac ... une autre histoire pour un autre jour)

nvim mysql_config

Étape 4: Vous verrez à peu près la ligne 112

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

Changer en

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

* Vous remarquerez que ce fichier a un accès en lecture seule, donc si vous utilisez vim ou neovim

:w !Sudo tee %

Étape 5: Allez dans le répertoire racine et éditez le fichier .bash_profile

cd ~

Ensuite

nvim .bash_profile

et ajouter

export PATH="/usr/local/mysql/bin:$PATH"

dans le fichier puis enregistrez

Étape 6: par rapport à Macintosh HD localisez les chemins et ajoutez-les

cd private/etc/

puis 

nvim paths

et ajouter 

/usr/local/mysql/bin

* vous remarquerez à nouveau que ce fichier a un accès en lecture seule, donc si vous utilisez vim ou neovim

:w !Sudo tee % 

puis

cd ~

puis actualisez le terminal avec vos modifications en exécutant 

source .bash_profile

Finalement

pip3 install mysqlclient

Et Viola. Rappelez-vous que c'est une ambiance.

5

Cela se produit aussi quand j'installais mysqlclient,

$ pip install mysqlclient

Comme dit l'utilisateur3429036,

$ brew install mysql
2
AndreL

Si vous ne souhaitez pas installer MySQL complet, nous pouvons résoudre ce problème en installant simplement mysqlclient brew install mysqlclient Une fois que cmd est terminé, il vous sera demandé d'ajouter la ligne ci-dessous à ~/.bash_profile:

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

Fermez le terminal, démarrez le nouveau et passez à pip install mysqlclient

0
Arun