Voici l'histoire de mes divagations de l'expérience avec ce problème. Serait ravi de le voir édité ou généralisées si vous avez une meilleure expérience de la question... appliquer un peu de cette magie.
Note: les Commentaires dans le prochain paragraphe s'applique à Snow Leopard, mais pas de Lion, qui semble exiger 64 bits MySQL
Tout d'abord, l'auteur (encore?) de MySQLdb dit ici que l'un des plus pernicieux des problèmes est que OS X est installé avec une version 32 bits de Python, mais la plupart average joes (moi y compris) probablement sauter pour installer la version 64 bits de MySQL. Mauvais coup... supprimer la version 64 bits si vous l'avez installé (instructions sur cette délicate tâche sont disponibles sur DONC ici), puis téléchargez et installez la version 32 bits (paquet ici)
Il existe de nombreuses étape-par-étapes sur la façon de construire et d'installer le MySQLdb bibliothèques. Ils ont souvent des différences subtiles. Cela me semblait le plus populaire de moi, et a fourni la solution de travail. J'en ai reproduit avec un couple de modifications ci-dessous
Étape 0:
Avant de commencer, je suppose que vous avez MySQL, Python, et GCC installé sur le mac.
Étape 1:
Télécharger la dernière MySQL pour Python carte à partir de SourceForge.
Étape 2:
Extrait de votre package téléchargé:
tar xzvf MySQL-python-1.2.2.tar.gz
Étape 3:
À l'intérieur du dossier, nettoyer le package:
sudo python setup.py clean
QUELQUES ÉTAPES SUPPLÉMENTAIRES, (à partir de ce commentaire)
Étape 3b:
Supprimer tout sous MySQL-python-1.2.2/build/* répertoire -- ne faites pas confiance à la "python setup.py propre" de le faire pour vous
L'étape 3c:
Retirez l'oeuf sous Utilisateurs/$USER/.python-oeufs
Étape 4:
À l'origine, nécessaire de montage _mysql.c, mais N'est désormais PLUS NÉCESSAIRE. MySQLdb communauté semblent avoir résolu ce bug maintenant.
Étape 5:
Créer un lien symbolique dans 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:
Modifier la setup_posix.py et modifier les éléments suivants
mysql_config.chemin = "mysql_config"
pour
mysql_config.path = "/usr/local/mysql/bin/mysql_config"
Étape 7:
Dans le même répertoire, de la reconstruction de votre colis (ignorer les avertissements qui vient avec elle)
sudo python setup.py build
Étape 8:
Installez le paquet et vous avez terminé.
sudo python setup.py install
Étape 9:
Tester si ça fonctionne. Cela fonctionne si vous pouvez import MySQLdb.
python
>>> import MySQLdb
Étape 10:
Si lors de la tentative d'importation, vous recevez un message d'erreur en se plaignant qu' Library not loaded: libmysqlclient.18.dylib
fin: Reason: image not found
vous devez créer un lien symbolique qui est:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Vous devriez être en mesure d' import MySQLdb
sans erreurs.
Un dernier hoquet, c'est que si vous commencez à Python dans le répertoire de construction, vous obtiendrez ce message d'erreur:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx 10.5-i386.oeuf/_mysql.py:3: UserWarning: Module _mysql a déjà été importé à partir de /Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx 10.5-i386.oeuf/_mysql.pyc, mais XXXX/MySQL-python-1.2.3c1 est ajouté à des sys.chemin
C'est assez facile à Google, mais pour vous épargner la peine vous allez vous retrouver ici (ou peut-être pas... pas particulièrement de l'avenir de l'URL) et de la figure que vous avez besoin d' cd ..
de répertoire de construction et le message d'erreur devrait disparaître.
Comme je l'ai écrit au dessus, je serais ravi de voir cette réponse généralisée, car il existe de nombreuses autres expériences spécifiques de ce problème horrible. Edit loin, ou de fournir votre propre, une meilleure réponse.