Actualización para aquellos que usan Python3:
simplemente puede usar conda install mysqlclient
para instalar las bibliotecas necesarias para usar MySQLdb tal como existe actualmente. La siguiente pregunta SO fue una pista útil: Python 3 ImportError: Ningún módulo llamado 'ConfigParser' . La instalación de mysqlclient instalará mysqlclient, mysql-connector y llvmdev (al menos, instaló estas 3 bibliotecas en mi máquina).
Aquí está la historia de mi experiencia incoherente con este problema. Me encantaría verlo editado o generalizado si tiene una mejor experiencia con el problema ... aplique un poco de esa TAN mágica.
Nota: Los comentarios del párrafo siguiente se aplicaron a Snow Leopard, pero no a Lion, que parece requerir MySQL de 64 bits.
En primer lugar, el autor (¿todavía?) De MySQLdb dice aquí que uno de los problemas más perniciosos es que OS X viene instalado con una versión de 32 bits de Python, pero la mayoría de los usuarios promedio (incluido yo mismo) probablemente salte para instalar la versión de 64 bits. de MySQL. Mal movimiento ... elimine la versión de 64 bits si la ha instalado (las instrucciones sobre esta tarea complicada están disponibles en SO aquí ), luego descargue e instale la versión de 32 bits (paquete aquí )
Existen numerosos pasos a seguir sobre cómo crear e instalar las bibliotecas MySQLdb. A menudo tienen diferencias sutiles. Este me pareció el más popular y proporcionó la solución de trabajo. Lo he reproducido con un par de ediciones a continuación.
Paso 0:
antes de comenzar, supongo que tiene MySQL, Python y GCC instalados en Mac.
Paso 1:
Descargue el último adaptador MySQL para Python de SourceForge.
Paso 2:
extraiga su paquete descargado:
tar xzvf MySQL-python-1.2.2.tar.gz
Paso 3:
Dentro de la carpeta, limpia el paquete:
sudo python setup.py clean
PAREJA DE PASOS EXTRA, (de este comentario )
Paso 3b:
elimine todo lo que esté en su directorio MySQL-python-1.2.2 / build / * - no confíe en "python setup.py clean" para que lo haga por usted
Paso 3c:
Retire el huevo debajo de Users / $ USER / .python-eggs
Paso 4:
Originalmente requería editar _mysql.c, pero ahora YA NO ES NECESARIO. La comunidad MySQLdb parece haber solucionado este error ahora.
Paso 5:
Cree un enlace simbólico en lib para apuntar a un subdirectorio llamado mysql. Aquí es donde busca durante la compilación.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Paso 6:
Edite setup_posix.py y cambie lo siguiente
mysql_config.path = "mysql_config"
a
mysql_config.path = "/ usr / local / mysql / bin / mysql_config"
Paso 7:
En el mismo directorio, reconstruya su paquete (ignore las advertencias que lo acompañan)
sudo python setup.py build
Paso 8:
Instale el paquete y listo.
sudo python setup.py install
Paso 9:
prueba si está funcionando. Funciona si puede importar MySQLdb.
python
>>> import MySQLdb
Paso 10:
Si al intentar importar, recibe un error quejándose de que Library not loaded: libmysqlclient.18.dylib
termina en: Reason: image not found
necesita crear un enlace simbólico adicional que es:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Entonces debería poder hacerlo import MySQLdb
sin errores.
Sin embargo, un inconveniente final es que si inicia Python desde el directorio de compilación, obtendrá este error:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3: UserWarning: El módulo _mysql ya se importó desde /Library/Python/2.5/ site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, pero XXXX / MySQL-python-1.2.3c1 se está agregando a sys.path
Esto es bastante fácil para Google, pero para evitarle problemas, terminará aquí (o tal vez no ... no es una URL particularmente cd ..
preparada para el futuro) y se dará cuenta de que necesita salir del directorio de compilación y el error debería desaparecer.
Como escribí en la parte superior, me encantaría ver esta respuesta generalizada, ya que existen muchas otras experiencias específicas de este horrible problema. Edite o proporcione su propia respuesta mejor.