2010-07-19 3 views
2

J'ai toutes sortes de problèmes pour installer MySQLdb (1.2.2) sur Snow Leopard. Je cours python 2.5.1 et MySQL 5.1 32bit.Installer MySQLdb sur Snow Leopard

Python et MySQL fonctionnent très bien. J'ai également installé django 1.2.1, bien que je ne pense pas que ce soit si important, mais je voulais donner une idée de la pile que j'essaie d'installer. J'utilise python 2.5.x car mon hébergeur n'a cette version qu'en option et je veux être aussi proche de mon environnement de production que possible.

de toute façon ...

Après avoir suivi un grand nombre des articles et des tutoriels existants qui mentionner la modification _mysql.c et setup_posix.py etc, je suis toujours en cours d'exécution dans le pétrin.

Voici ma pile trace:

xxxxxxx-MBP: MySQL-python-1.2.2 xxxxxxx $ sudo ARCHFLAGS = "- arc x86_64" python setup.py construire construire en cours d'exécution en cours d'exécution build_py construire créant la création de build/lib.macosx-10.3-i386-2.5 copie _mysql_exceptions.py -> construire/lib.macosx-10.3-i386-2.5 création construire/lib.macosx-10.3-i386-2.5/MySQLdb copie MySQLdb/init .py -> build/lib.macosx-10.3-i386-2.5/MySQLdb copie de MySQLdb/convertters.py -> build/lib.macosx-10.3-i386 -2.5/MySQLdb copie de MySQLdb/connections.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb copie de MySQLdb/cursors.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb copie MySQLdb/release.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb en copiant MySQLdb/times.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb en créant build/lib.macosx- 10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constantes/init .py -> build/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constants/CR.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constantes/FIELD_TYPE.py -> construire/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constants/ER.py -> Buil d/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constantes/FLAG.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copier MySQLdb/constants/REFRESH.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb/constantes copie de MySQLdb/constantes/CLIENT.py -> build/lib.macosx-10.3-i386-2.5/MySQLdb/constantes exécution de build_ext construction '_mysql 'extension création build/temp.macosx-10.3-i386-2.5 gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno- fusionné-madd -fno-common -dynamique -DNDEBUG -g -O3 -Dversion_info = (1,2,2, 'final', 0) -D__version __ = 1.2.2 -I/usr/local/mysql-5.1.48- osx10.6-x86/include -I/Bibliothèque/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c _mysql.c -o build/temp.macosx-10.3-i386-2.5/_mysql.o - g -os -arch i386 -fno-commune -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL Dans le fichier inclus à partir /Developer/SDKs/MacOSX10.4u.sdk/usr/include/wchar.h:112, de/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/unicodeobject.h: 118, depuis /Bibliothèque/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:83, à partir de pymemcompat.h: 10, à partir de _mysql.c: 29: /Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: erreur: stdarg.h: Aucun fichier ou répertoire Dans le fichier inclus de _mysql.c: 35: /usr/local/mysql-5.1.48-osx10.6-x86/include/my_config.h:1062:1: avertissement: "HAVE_WCSCOLL "redéfinie Dans le fichier inclus à partir /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:8, de pymemcompat.h: 10, de _mysql.c: 29: /Bibliothèque/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h: 724: 1: avertissement: il s'agit de l'emplacement de la précédente définition erreur: la commande 'gcc' a échoué avec le statut de sortie 1

Est-ce que quelqu'un a des idées?

+0

Vous voudrez peut-être donner [MacPorts] (http://www.macports.org/) un essai. Désinstallez votre installation MySQL existante, puis faites 'sudo port installer mysql5-server-devel python25 py25-mysql'. Il vous dira comment configurer votre nouveau serveur MySQL à la fin de l'installation.Vous devrez également vous assurer que vous utilisez l'installation de MacPorts Python au lieu de celle du système (vous pouvez utiliser python-select pour cela). –

Répondre

0

J'installe habituellement des paquets comme celui-ci avec MacPorts. C'est un logiciel de gestion de paquets qui gère tout le téléchargement, la configuration et l'installation pour vous. C'est juste comme emerge sur gentoo ou apt-get sur debian.

Assurez-vous que Xcode est installé et install macports. Une fois que vous avez installé que, lancez le terminal et installer MySQL en tapant:

$ sudo port install mysql5-server 
0

J'ai essayé de résoudre celui-ci pour les jours moi-même et finalement abandonné.

Je suis passé à postgres. Cela fonctionne plutôt bien avec django sur snow léopard, avec un problème mineur. Pour une raison quelconque, auto_inc pk ids ne se voit pas attribuer à certains modèles. J'ai résolu le problème en assignant aléatoirement un identifiant à partir d'une grande plage aléatoire , et en m'appuyant sur la désignation de colonne unique pour éviter les collisions.

Mon serveur de production est linux. Mysql et postgres s'installent bien dessus. En fait, plusieurs sur le canal #django irc recommandaient d'utiliser une instance virtuelle Linux sur le mac pour contourner mes problèmes d'installation de mysql.

+0

Il me vient aussi à l'esprit de simplement lancer Linux sur une machine virtuelle. J'avais peur que cela puisse sembler smarmy, cependant! Je pense que c'est le meilleur plan esp. puisque le serveur web fonctionne probablement sous Linux. – JAL

1

Plutôt en retard pour la question originale, mais au cas où d'autres - comme moi - rencontrent le mystère d'un stdarg.h manquant, voir ci-dessous. J'utilise MacOS X 10.7.3, MySQL 5.5.20, Python 2.7.2, MySQL-python-1.2.3.

Mon message d'erreur:

/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory 

Le blog suivant m'a sauvé: http://packetcloud.net/2009/09/22/installing-mysql-python-module-for-python-262-on-snow-leopard-using-xcode/

Résumant panneton:

ouvrir /Developer/SDKs/MacOSX10.6.sdk/ usr/include/stdarg.h

Remplacer la ligne:

#include_next <stdarg.h> 

Avec:

#include_next </Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h> 

choses fonctionnent en douceur Puis:

> sudo ARCHFLAGS='-arch x86_64' python setup.py build 
> sudo ARCHFLAGS='-arch x86_64' python setup.py install