Mise à jour pour ceux qui utilisent Python3:
Vous pouvez simplement utiliser conda install mysqlclient
pour installer les bibliothèques requises pour utiliser MySQLdb tel qu'il existe actuellement. La question SO suivante était un indice utile: Python 3 ImportError: Aucun module nommé «ConfigParser» . L'installation de mysqlclient installera mysqlclient, mysql-connector et llvmdev (au moins, il a installé ces 3 bibliothèques sur ma machine).
Voici le récit de mon expérience décousue avec ce problème. J'adorerais le voir édité ou généralisé si vous avez une meilleure expérience du problème ... appliquez un peu de cette magie SO.
Remarque: les commentaires du paragraphe suivant s'appliquent à Snow Leopard, mais pas à Lion, qui semble nécessiter MySQL 64 bits
Tout d'abord, l'auteur (toujours?) De MySQLdb dit ici que l'un des problèmes les plus pernicieux est qu'OS X est installé avec une version 32 bits de Python, mais la plupart des joes moyens (moi y compris) sautent probablement pour installer la version 64 bits de MySQL. Mauvais mouvement ... supprimez la version 64 bits si vous l'avez installée (les instructions sur cette tâche fastidieuse sont disponibles sur SO ici ), puis téléchargez et installez la version 32 bits (package ici )
Il existe de nombreuses étapes pour créer et installer les bibliothèques MySQLdb. Ils ont souvent des différences subtiles. Cela m'a semblé le plus populaire et a fourni la solution de travail. Je l'ai reproduit avec quelques modifications ci-dessous
Étape 0:
Avant de commencer, je suppose que MySQL, Python et GCC sont installés sur le mac.
Étape 1:
Téléchargez le dernier adaptateur MySQL pour Python à partir de SourceForge.
Étape 2:
Extrayez votre package téléchargé:
tar xzvf MySQL-python-1.2.2.tar.gz
Étape 3:
Dans le dossier, nettoyez le package:
sudo python setup.py clean
COUPLE D'ÉTAPES SUPPLÉMENTAIRES, (à partir de ce commentaire )
Étape 3b:
supprimez tout ce qui se trouve dans votre répertoire MySQL-python-1.2.2 / build / * - ne faites pas confiance à "python setup.py clean" pour le faire à votre place
Étape 3c:
Supprimez l'œuf sous Users / $ USER / .python-eggs
Étape 4:
À l'origine, il était nécessaire de modifier _mysql.c, mais n'est plus nécessaire. La communauté MySQLdb semble avoir corrigé ce bogue maintenant.
Étape 5:
Créez un lien symbolique sous lib pour pointer vers un sous-répertoire appelé mysql. C'est là qu'il recherche lors de la compilation.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Étape 6:
Modifiez le fichier setup_posix.py et modifiez ce qui suit
mysql_config.path = "mysql_config"
à
mysql_config.path = "/ usr / local / mysql / bin / mysql_config"
Étape 7:
Dans le même répertoire, reconstruisez votre package (ignorez les avertissements qui l'accompagnent)
sudo python setup.py build
Étape 8:
Installez le package et vous avez terminé.
sudo python setup.py install
Étape 9:
Testez si cela fonctionne. Cela fonctionne si vous pouvez importer MySQLdb.
python
>>> import MySQLdb
Étape 10:
Si lors de la tentative d'importation, vous recevez une erreur se plaignant que se Library not loaded: libmysqlclient.18.dylib
terminant par: Reason: image not found
vous devez créer un lien symbolique supplémentaire qui est:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Vous devriez alors pouvoir le faire import MySQLdb
sans aucune erreur.
Un dernier problème est que si vous démarrez Python à partir du répertoire de construction, vous obtiendrez cette erreur:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3: UserWarning: Le module _mysql a déjà été importé de /Library/Python/2.5/ site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, mais XXXX / MySQL-python-1.2.3c1 est ajouté à sys.path
C'est assez facile pour Google, mais pour vous éviter les ennuis, vous vous retrouverez ici (ou peut-être pas ... pas une URL particulièrement à l'épreuve du temps) et comprendrez que vous devez cd ..
sortir du répertoire de construction et que l'erreur devrait disparaître.
Comme je l'ai écrit en haut, j'aimerais voir cette réponse généralisée, car il existe de nombreuses autres expériences spécifiques de cet horrible problème. Modifiez ou fournissez votre propre meilleure réponse.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
. Une fois que j'ai exécuté ceci, il a importé comme prévu ... enfin. Wheewwww. Juste un fyi pour ceux qui sont dans une position similaire.Un moyen rapide et facile pour Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite) et 10.11 (El Capitan):
Je suppose que vous avez installé XCode, ses outils de ligne de commande , Python et MySQL.
Installez PIP:
Modifier ~ / .profile: (peut ne pas être nécessaire sous Mac OS X 10.10)
Copiez et collez les deux lignes suivantes
Sauvegarder et quitter. Afterwords exécutez la commande suivante:
Installez MySQLdb
Pour tester si tout fonctionne bien, essayez
Cela a fonctionné comme un charme pour moi. J'espère que cela aide.
Si vous rencontrez une erreur concernant une bibliothèque manquante: Bibliothèque non chargée: libmysqlclient.18.dylib, vous devez alors créer un lien symbolique
/usr/lib
comme suit :la source
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
commande par le bas.export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/
brew install mysql
, je n'ai pas eu à passer par la 2ème étape.Installez mysql et python via Macports Les porteurs ont fait tout le travail difficile.
devrait installer ce dont vous avez besoin. (voir le débordement de pile pour les commentaires sur le serveur mysql )
Si vous avez seulement besoin de vous connecter à mysql et de ne pas exécuter de serveur, la première ligne est suffisante.
Macports maintenant (début 2013) fournira des téléchargements binaires pour les combinaisons courantes de système d'exploitation et d'architecture exécutable, pour d'autres (et si vous le demandez), il sera construit à partir des sources.
En général, macports (ou fink) aide quand il y a des bibliothèques complexes, etc. qui doivent être installées.
Python uniquement code et si de simples dépendances C peuvent être configurées via setuptools, etc., mais cela commence à devenir complexe si vous mélangez les deux.
la source
Installez pip:
Installez l'infusion:
Installez mysql:
Installez MySQLdb
Si vous rencontrez des problèmes de compilation, essayez de modifier le fichier ~ / .profile comme dans l'une des réponses ici.
la source
pip install mysqlclient
place. Travaux!Voici une autre étape que j'ai dû franchir, après avoir reçu une erreur à la fin de l'étape 9:
Référence: Merci! http://ageekstory.blogspot.com/2011_04_01_archive.html
la source
Comme indiqué lors de l' installation de MySQL-python sur mac :
Alors testez-le:
la source
Je viens d'avoir ce problème (encore!) Après avoir acheté une nouvelle boîte Lion.
Meilleure solution que j'ai trouvée (toujours pas optimale à 100%, mais qui fonctionne):
assurez-vous que vous disposez de python 64 bits. Comment vérifier si une bibliothèque est 32 bits / 64 bits construite sur Mac OS X?
installez easy_install si vous ne l'avez pas. http://packages.python.org/distribute/easy_install.html
installez GCC si vous ne l'avez pas.
vous pouvez l' obtenir en téléchargeant XCode / Dev Tools d'Apple - c'est un gros téléchargement -
... mais à la place je recommande ce github qui a ce dont vous avez besoin (et n'a pas de XCode): https://github.com/kennethreitz/osx-gcc-installer
J'ai téléchargé leur PKG prédéfini pour lion, https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg
assurez-vous d'avoir téléchargé une version 64-BIT de MYSQL Community. (L'installation DMG est un moyen facile) http://dev.mysql.com/downloads/mysql/
Définissez les chemins comme suit:
export PATH = $ PATH: / usr / local / mysql-XXXX
export DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
export ARCHFLAGS = '- arch x86_64'
NOTEZ QUE:
Installez la bête!
easy_install MySQL-python
DERNIÈRE ÉTAPE:
Ajoutez définitivement le DYLD_LIBRARY_PATH!
Vous pouvez l'ajouter à votre bash_profile ou similaire. C'était l'étape manquante pour moi, sans laquelle mon système a continué à insister sur diverses erreurs trouvant _mysql.so et ainsi de suite.
export DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
@ richard-boardman, vient de remarquer votre solution de lien souple, qui peut en fait faire la même chose que ma solution PATH ... les gens, ce qui fonctionne le mieux pour vous.
Meilleure référence: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/
la source
Vous pouvez essayer d'utiliser le pur-python
pymysql
:(Ou utilisez
pip
si vous l'avez installé.) Ensuite, ajoutez ceci avant vousimport MySQLdb
dans votre code:la source
Ou essayez simplement:
Si cela donne une erreur comme ci-dessous:
, alors lancez simplement ceci
la source
Si vous utilisez MySQL 64 bits, utiliser ARCHFLAGS pour spécifier l'architecture de votre processeur lors de la construction de bibliothèques mysql-python ferait l'affaire:
la source
devrait résoudre le problème pour vous car le système ne parvient pas à trouver le fichier mysql_config.
la source
Sur macos Sierra, cela fonctionne pour moi, où python est géré par anaconda:
anaconda search -t conda mysql-python
anaconda show CEFCA/mysql-python
conda install --channel https://conda.anaconda.org/CEFCA mysql-python
Le à utiliser avec SQLAlchemy:
la source
Cette réponse est une mise à jour, vers novembre 2019. Aucune des installations pip populaires ne vous donnera une configuration fonctionnelle sur MacOS 10.13 (et probablement d'autres versions également). Voici une façon simple de faire fonctionner les choses:
Si vous avez besoin d'aide pour installer brew, consultez ce site: https://brew.sh/
la source
J'ai rencontré ce problème et j'ai trouvé qu'il
mysqlclient
fallait savoir où trouver openssl, et OSX le cache par défaut.Localisez openssl avec
brew info openssl
, puis ajoutez le chemin de votreopenssl
corbeille à votre PATH:Je recommande de l'ajouter à votre .zshrc ou .bashrc afin que vous n'ayez pas à vous en soucier à l'avenir. Ensuite, avec cette variable exportée (ce qui peut entraîner la fermeture et la réouverture de votre session bash), ajoutez deux autres variables env:
Puis, enfin, exécutez:
et il devrait s'installer très bien.
Source: https://medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2
la source