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.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
. Depois de executar isso, importou conforme o esperado ... finalmente. Wheewwww. Apenas um fyi para quem está em uma posição semelhante.Uma maneira rápida e fácil para Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite) e 10.11 (El Capitan):
Presumo que você tenha o XCode, suas ferramentas de linha de comando , Python e MySQL instalados.
Instale o PIP:
Editar ~ / .profile: (pode não ser necessário no Mac OS X 10.10)
Copie e cole as duas linhas a seguir
Salvar e sair. Afterwords executa o seguinte comando:
Instale MySQLdb
Para testar se tudo funciona bem, tente
Funcionou como um encanto para mim. Espero que ajude.
Se você encontrar um erro relacionado a uma biblioteca ausente: Biblioteca não carregada: libmysqlclient.18.dylib, então você deve criar um link simbólico para
/usr/lib
:fonte
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
comando de baixo.export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/
brew install mysql
, não precisei passar pela segunda etapa.Instale mysql e python via Macports Os portadores fizeram todo o trabalho difícil.
deve instalar o que você precisa. (veja Stack overflow para comentários sobre o servidor mysql )
Se você só precisa se conectar ao mysql e não executar um servidor, a primeira linha é suficiente.
Macports agora (início de 2013) fornecerá downloads binários para combinações comuns de SO e arquitetura executável, para outros (e se você solicitar), ele será compilado a partir do código-fonte.
Em geral, macports (ou fink) ajudam quando há bibliotecas complexas etc. que precisam ser instaladas.
Somente código Python e se dependências simples de C podem ser configuradas por meio de ferramentas de configuração etc, mas começa a ficar complexo se você misturar os dois.
fonte
Instale o pip:
Instale a cerveja:
Instale o mysql:
Instale MySQLdb
Se você tiver problemas de compilação, tente editar o arquivo ~ / .profile como em uma das respostas aqui.
fonte
pip install mysqlclient
vez disso. Trabalho!Aqui está outra etapa pela qual tive que passar, depois de receber um erro ao concluir a Etapa 9:
Referência: Obrigado! http://ageekstory.blogspot.com/2011_04_01_archive.html
fonte
Conforme declarado em Instalação do MySQL-python no mac :
Em seguida, teste:
fonte
Acabei de ter esse problema (de novo!) Depois de obter uma nova caixa Lion.
Melhor solução que encontrei (ainda não 100% ideal, mas funcionando):
certifique-se de ter python de 64 bits. Como verificar se uma biblioteca é 32 bits / 64 bits construída no Mac OS X?
instale o easy_install se você não o tiver. http://packages.python.org/distribute/easy_install.html
instale o GCC se não o tiver.
você pode obtê-lo baixando XCode / Dev Tools da Apple - este é um grande download -
... mas, em vez disso, recomendo este github que tem o que você precisa (e não tem XCode): https://github.com/kennethreitz/osx-gcc-installer
Eu baixei seu PKG pré-construído para o lion, https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg
certifique-se de ter baixado uma versão de 64 bits da comunidade MYSQL. (A instalação do DMG é um caminho fácil) http://dev.mysql.com/downloads/mysql/
Defina os caminhos da seguinte forma:
exportar PATH = $ PATH: / usr / local / mysql-XXXX
exportar DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
exportar ARCHFLAGS = '- arch x86_64'
OBSERVE QUE:
Instale a besta!
easy_install MySQL-python
ÚLTIMO PASSO:
Adicione permanentemente o DYLD_LIBRARY_PATH!
Você pode adicioná-lo ao seu bash_profile ou similar. Essa era a etapa que faltava para mim, sem a qual meu sistema continuou a insistir em vários erros para localizar _mysql.so e assim por diante.
exportar DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
@richard-boardman, acabei de notar sua solução de soft link, que pode na verdade estar fazendo a mesma coisa que minha solução PATH faz ... pessoal, o que funcionar melhor para vocês.
Melhor referência: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/
fonte
Você pode tentar usar o pure-python
pymysql
:(Ou use
pip
se você o tiver instalado.) Em seguida, adicione isso antes de vocêimport MySQLdb
em seu código:fonte
Ou tente simplesmente:
Se der um erro como abaixo:
, então apenas execute este
fonte
Se você estiver usando MySQL de 64 bits, usar ARCHFLAGS para especificar sua arquitetura de cpu ao construir bibliotecas mysql-python resolverá o problema:
fonte
deve corrigir o problema para você, pois o sistema não consegue encontrar o arquivo mysql_config.
fonte
Em macos Sierra, isso funciona para mim, onde python é gerenciado por anaconda:
anaconda search -t conda mysql-python
anaconda show CEFCA/mysql-python
conda install --channel https://conda.anaconda.org/CEFCA mysql-python
O para usar com SQLAlchemy:
fonte
Esta resposta é uma atualização, cerca de novembro de 2019. Nenhuma das instalações populares do pip fornecerá uma configuração de trabalho no MacOS 10.13 (e provavelmente em outras versões também). Esta é uma maneira simples de fazer as coisas funcionarem:
Se precisar de ajuda para instalar o brew, consulte este site: https://brew.sh/
fonte
Corri para este problema e descobri que
mysqlclient
precisa saber onde encontrar o openssl, e OSX esconde isso por padrão.Localize o openssl com
brew info openssl
e, em seguida, adicione o caminho do seuopenssl
compartimento ao PATH:Eu recomendo adicionar isso ao seu .zshrc ou .bashrc para que você não precise se preocupar com isso no futuro. Em seguida, com essa variável exportada (o que pode significar fechar e reabrir sua sessão bash), adicione mais duas variáveis env:
Então, finalmente, execute:
e deve instalar perfeitamente.
Fonte: https://medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2
fonte