Atualização para quem usa Python3:
você pode simplesmente usar conda install mysqlclient
para instalar as bibliotecas necessárias para usar o MySQLdb como ele existe atualmente. A seguinte pergunta do SO foi uma pista útil: Python 3 ImportError: Nenhum módulo denominado 'ConfigParser' . Instalar mysqlclient irá instalar mysqlclient, mysql-connector e llvmdev (pelo menos, instalou essas 3 bibliotecas em minha máquina).
Aqui está o conto de minha experiência errante com esse problema. Adoraria vê-lo editado ou generalizado se você tiver uma melhor experiência do assunto ... aplique um pouco dessa TÃO mágica.
Observação: os comentários no próximo parágrafo se aplicam ao Snow Leopard, mas não ao Lion, que parece exigir MySQL de 64 bits
Em primeiro lugar, o autor (ainda?) De MySQLdb diz aqui que um dos problemas mais perniciosos é que o OS X vem instalado com uma versão de Python de 32 bits, mas a maioria dos joes comuns (inclusive eu) provavelmente pula para instalar a versão de 64 bits do MySQL. Má jogada ... remova a versão de 64 bits se você a instalou (as instruções sobre esta tarefa complicada estão disponíveis no SO aqui ), então baixe e instale a versão de 32 bits (pacote aqui )
Existem vários passos passo a passo sobre como construir e instalar as bibliotecas MySQLdb. Eles costumam ter diferenças sutis. Isso me pareceu o mais popular e forneceu a solução de trabalho. Eu o reproduzi com algumas edições abaixo
Etapa 0:
antes de começar, suponho que você tenha MySQL, Python e GCC instalados no mac.
Etapa 1:
Baixe o adaptador MySQL para Python mais recente no SourceForge.
Etapa 2:
extraia o pacote baixado:
tar xzvf MySQL-python-1.2.2.tar.gz
Etapa 3:
dentro da pasta, limpe o pacote:
sudo python setup.py clean
CASAL DE PASSOS EXTRA, ( deste comentário )
Etapa 3b:
Remova tudo em seu diretório MySQL-python-1.2.2 / build / * - não confie no "python setup.py clean" para fazer isso por você
Etapa 3c:
Remova o ovo em Usuários / $ USER / .python-eggs
Etapa 4:
Originalmente necessário editar _mysql.c, mas agora NÃO É MAIS NECESSÁRIO. A comunidade MySQLdb parece ter corrigido esse bug agora.
Etapa 5:
Crie um link simbólico em lib para apontar para um subdiretório chamado mysql. É aqui que ele procura durante a compilação.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Etapa 6:
edite o setup_posix.py e altere o seguinte
mysql_config.path = "mysql_config"
para
mysql_config.path = "/ usr / local / mysql / bin / mysql_config"
Etapa 7:
no mesmo diretório, reconstrua seu pacote (ignore os avisos que vêm com ele)
sudo python setup.py build
Etapa 8:
Instale o pacote e pronto.
sudo python setup.py install
Etapa 9:
teste se está funcionando. Funciona se você puder importar MySQLdb.
python
>>> import MySQLdb
Etapa 10:
Se ao tentar importar você receber um erro reclamando que Library not loaded: libmysqlclient.18.dylib
termina com: Reason: image not found
você precisa criar um link simbólico adicional que é:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Você deve ser capaz de fazê-lo import MySQLdb
sem erros.
Um último contratempo, porém, é que se você iniciar o Python a partir do diretório de compilação, obterá este erro:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3: UserWarning: Módulo _mysql já foi importado de /Library/Python/2.5/ site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, mas XXXX / MySQL-python-1.2.3c1 está sendo adicionado a sys.path
Isso é muito fácil para o Google, mas para evitar problemas, você acabará aqui (ou talvez não ... não é um URL especialmente preparado para o futuro) e descobrirá que precisa cd ..
sair do diretório de construção e o erro deve desaparecer.
Como escrevi no início, adoraria ver essa resposta generalizada, pois existem inúmeras outras experiências específicas desse horrível problema por aí. Edite ou forneça sua própria resposta melhor.