100 votes

Comment installer MySQLdb (données Python accès bibliothèque à MySQL) sur Mac OS X ?

Je suis un débutant en Python, mais j'ai passé une journée de travail comment obtenir MySQLdb travail correctement, et l'univers selon google comprend de nombreuses références à ce qu'un pain PITA il est, et un nombre incalculable de guides qui semblent être dépassées. Étant donné que ce site est destiné à répondre à ces sortes de problèmes, et je sais que je vais avoir besoin d'une référence à la solution à l'avenir, je vais poser la question, de vous donner ma réponse et voir ce qui flotte à la surface.

Donc, la question est de savoir comment obtenir MySQLdb fonctionne sur Mac OS X?

132voto

mblackwell8 Points 1574

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.

101voto

Flek Points 3312

Un moyen facile et rapide pour Mac OS X 10.8 et 10.9:

Je suppose que vous avez XCode, c'est l'outil de ligne de commande Python et MySQL.

  1. Installer PIP:

    sudo easy_install pip
    
  2. Éditer ~/.profil:

    nano ~/.profile
    

    Copier et coller les deux lignes suivantes

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

    Enregistrer et quitter. Ensuite, exécutez la commande suivante

    source  ~/.profile
    
  3. Installer MySQLdb

    sudo pip install MySQL-python
    

    Pour tester si tout fonctionne bien juste essayer

    python -c "import MySQLdb"
    

Il a travaillé comme un charme pour moi. J'espère que cela aide.

Si vous rencontrez un message d'erreur concernant un manque de bibliothèque: la Bibliothèque n'est pas chargé: libmysqlclient.18.dylib ensuite, vous avez à établir le lien tout à l' /usr/lib comme:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

36voto

Mark Points 21191

Installer mysql et python via Macports, Les porteurs ont fait tout le travail difficile.

sudo port install py26-mysql 
sudo port install mysql5-server

doit installer ce dont vous avez besoin. (voir débordement de Pile pour les commentaires concernant le serveur mysql)

Si vous avez seulement besoin de se connecter à mysql et à ne pas exécuter un serveur puis la première ligne est suffisante.

Macports maintenant (début 2013) fournira binaire téléchargements pour le commun des combinaisons de OS un exécutable de l'architecture, pour les autres (et si vous en faites la demande) qu'il va construire à partir de la source.

En général macports (ou fink) à l'aide quand il y a des bibliothèques complexes, etc ... qui doivent être installés.

Python seul code et si C très simple dépendances peuvent être configurés via setuptools etc, mais il commence à devenir complexe si vous mélangez les deux.

15voto

Ron Reiter Points 1436

Installer le pip :

Installer l’infusion :

Installer mysql :

Installer MySQLdb

Si vous avez des problèmes de compilation, essayez de modifier le fichier ~/.profile comme dans une des réponses ici.

13voto

Richard Boardman Points 386

Voici une autre étape, que j’ai eu à traverser, après réception d’une erreur à la fin d’étape 9 :

Référence : Merci ! http://ageekstory.blogspot.com/2011_04_01_archive.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X