Problemas para configurar el módulo MySQLdb

Estoy tratando de configurar MySQLdb en mi Mac para conectarme a un servidor MySQL remoto.

  1. He instalado las últimas bibliotecas cliente de C MySQL
  2. He instalado XCode 4
  3. Intenté ingenuamente instalar el módulo antes de instalar XCode o las bibliotecas cliente

Estoy intentando configurar el módulo ejecutando los siguientes comandos en el terminal:

$ sudo python setup.py build

$ sudo python setup.py install

Ambos de estos comandos fallan con mensajes de error similares. Aquí está el primer rastro de stack:

running build running build_py copying MySQLdb/release.py -> build/lib.macosx-10.6-universal-2.6/MySQLdb running build_ext building '_mysql' extension gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _mysql.c -o build/temp.macosx-10.6-universal-2.6/_mysql.o -fno-omit-frame-pointer -pipe In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1030:2: warning: #warning defining SIZEOF_CHARP = 4 /usr/include/mysql/my_config.h:1044:2: warning: #warning defining SIZEOF_LONG = 4 /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed Installed assemblers are: /usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 /usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1030:2: warning: #warning defining SIZEOF_CHARP = 4 /usr/include/mysql/my_config.h:1044:2: warning: #warning defining SIZEOF_LONG = 4 /usr/include/mysql/my_config.h:1151:1: warning: "WORDS_BIGENDIAN" redefined In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:8, from pymemcompat.h:10, from _mysql.c:29: /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:1014:1: warning: this is the location of the previous definition _mysql.c:2888: fatal error: error writing to -: Broken pipe comstacktion terminated. In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1027:2: warning: #warning defining SIZEOF_CHARP = 8 /usr/include/mysql/my_config.h:1041:2: warning: #warning defining SIZEOF_LONG = 8 lipo: can't open input file: /var/tmp//ccU6bipK.out (No such file or directory) error: command 'gcc-4.2' failed with exit status 1 

Y aquí está la traza de stack para el segundo comando:

 running install running bdist_egg running egg_info writing MySQL_python.egg-info/PKG-INFO writing top-level names to MySQL_python.egg-info/top_level.txt writing dependency_links to MySQL_python.egg-info/dependency_links.txt reading manifest file 'MySQL_python.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'MANIFEST' warning: no files found matching 'ChangeLog' warning: no files found matching 'GPL' writing manifest file 'MySQL_python.egg-info/SOURCES.txt' installing library code to build/bdist.macosx-10.6-universal/egg running install_lib running build_py copying MySQLdb/release.py -> build/lib.macosx-10.6-universal-2.6/MySQLdb running build_ext building '_mysql' extension gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _mysql.c -o build/temp.macosx-10.6-universal-2.6/_mysql.o -fno-omit-frame-pointer -pipe In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1030:2: warning: #warning defining SIZEOF_CHARP = 4 /usr/include/mysql/my_config.h:1044:2: warning: #warning defining SIZEOF_LONG = 4 /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed Installed assemblers are: /usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 /usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1030:2: warning: #warning defining SIZEOF_CHARP = 4 /usr/include/mysql/my_config.h:1044:2: warning: #warning defining SIZEOF_LONG = 4 /usr/include/mysql/my_config.h:1151:1: warning: "WORDS_BIGENDIAN" redefined In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:8, from pymemcompat.h:10, from _mysql.c:29: /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:1014:1: warning: this is the location of the previous definition _mysql.c:2888: fatal error: error writing to -: Broken pipe comstacktion terminated. In file included from _mysql.c:36: /usr/include/mysql/my_config.h:1027:2: warning: #warning defining SIZEOF_CHARP = 8 /usr/include/mysql/my_config.h:1041:2: warning: #warning defining SIZEOF_LONG = 8 lipo: can't open input file: /var/tmp//cchhckGP.out (No such file or directory) error: command 'gcc-4.2' failed with exit status 1 

He estado en esto por unos días y me está volviendo loco. Cualquier ayuda sería muy apreciada!

Te has preparado para los dolores de cabeza instalando el nuevo y avanzado Xcode 4 lugar de la última versión de Xcode 3 que es con la que se lanzó Mac OS X 10.6. El problema inmediato que está encontrando es que Python intenta construir módulos de extensión C con la misma configuración que Python fue construido. Para 10.6, eso incluye tres architectures: i386 , x86_64 , y ppc (para compatibilidad con progtwigs construidos en sistemas anteriores). Al parecer, Xcode 4 ha eliminado el soporte para la construcción de arcos ppc . Es posible que pueda ARCHFLAGS este problema fácilmente utilizando la variable de entorno ARCHFLAGS , que se utiliza para anular la configuración de arco utilizada por los Distutils de Python cuando se crean módulos de extensión. Intente hacer algo como esto (sin probar, ya que no tengo Xcode a la mano):

 sudo bash export ARCHFLAGS='-arch i386 -arch x86_64' rm -r build python setup.py build python setup.py install 

Una solución mejor, como se recomienda en otros lugares, es no intentar instalar MySQLdb en 10.6 usando el sistema Python y los instaladores binarios de MySQL. Más bien, use una solución completa instalando todo a través de un administrador de paquetes como MacPorts.

Hay otra manera que encontré para resolver esto. Encontré el mismo problema que tú, y la versión de mi python es 2.7.4 y Xcode 4. Tal vez acabas de obtener el python de 32 bits, como hice yo. Así que lo cambié a 2.7.5x64bit , entonces no debería haber problemas.