Em primeiro lugar, sim, eu já vi isso:
pip install mysql-python falha com EnvironmentError: mysql_config não encontrado
O problema
Estou tentando usar Django em um projeto do Google App Engine. No entanto, não consegui iniciar porque o servidor falha ao iniciar corretamente devido a:
ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
Eu fiz algumas pesquisas e tudo apontou para a necessidade de instalar o Mysql-python, pois aparentemente ele não está no meu sistema. Na verdade, tentei desinstalá-lo e consegui:
Cannot uninstall requirement mysql-python, not installed
Sempre que realmente tento instalar via:
sudo pip install MySQL-python
Recebo um erro informando:
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
Já tentei correr:
export PATH=$PATH:/usr/local/mysql/bin
mas isso não pareceu ajudar, pois executei o comando de instalação novamente e ainda falhou.
Alguma ideia?
Observe que não estou em um virtualenv.
EnvironmentError
e imprimir informações de depuração mais úteis, comoos.getcwd()
. você também pode adicionar umpdb.set_trace()
e descobrir coisas.Respostas:
Ok, bem, em primeiro lugar, deixe-me verificar se estou na mesma página que você:
brew install mysql
export PATH=$PATH:/usr/local/mysql/bin
pip install MySQL-Python
(oupip3 install mysqlclient
se estiver usando o python 3)Se você executou todas essas etapas na mesma ordem e ainda assim obteve um erro, continue lendo até o final, se, no entanto, não seguiu exatamente essas etapas tente, seguindo-as desde o início.
Então, você seguiu as etapas e ainda está obtendo um erro, bem, existem algumas coisas que você pode tentar:
Tente fugir
which mysql_config
do bash. Provavelmente não será encontrado. É por isso que a construção também não está encontrando. Tente correrlocate mysql_config
e veja se alguma coisa volta. O caminho para esse binário precisa estar na variável de ambiente $ PATH do shell ou explicitamente no arquivo setup.py para o módulo, supondo que ele esteja procurando em algum lugar específico para esse arquivo.Em vez de usar MySQL-Python, tente usar 'mysql-connector-python', ele pode ser instalado usando
pip install mysql-connector-python
. Mais informações sobre isso podem ser encontradas aqui e aqui .Encontre manualmente a localização de 'mysql / bin', 'mysql_config' e 'MySQL-Python' e adicione todos eles à variável de ambiente $ PATH.
Se todas as etapas acima falharem, então você pode tentar instalar 'mysql' usando MacPorts, caso em que o arquivo 'mysql_config' seria realmente ser chamado de 'mysql_config5', e, neste caso, você teria que fazer isso após a instalação:
export PATH=$PATH:/opt/local/lib/mysql5/bin
. Você pode encontrar mais detalhes aqui .Obs1: Já vi algumas pessoas falando que instalando
python-dev
elibmysqlclient-dev
também ajudou, porém não sei se esses pacotes estão disponíveis no Mac OS.Nota2: Além disso, certifique-se de tentar executar os comandos como root.
Obtive minhas respostas (além do meu cérebro) desses lugares (talvez você pudesse dar uma olhada neles, para ver se ajudaria): 1 , 2 , 3 , 4 .
Eu esperava ter ajudado e ficaria feliz em saber se isso funcionou ou não. Boa sorte.
fonte
brew install mysql
consertou. Além disso, este comandowhich mysql-config
não funcionou para mim, maswhich mysql_config
funcionou..bash_profile
arquivo:export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
export PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
Eu estava depurando esse problema há muito tempo - 3 horas e 17 minutos. O que me incomodou particularmente foi que eu já tinha sql instalado no meu sistema através de um trabalho anterior da uni, mas pip / pip3 não estava reconhecendo. Esses tópicos acima e muitos outros que vasculhei na internet foram úteis para eluminar o problema, mas não resolveram as coisas.
RESPONDA
Pip está procurando binários mysql no diretório Homebrew, localizado em relação ao Macintosh HD @
então descobri que isso requer que você faça algumas mudanças
etapa 1: Baixe o MySql se ainda não o tiver feito https://dev.mysql.com/downloads/
Etapa 2: localize-o em relação ao Macintosh HD e CD
Etapa 3: uma vez lá, abra o terminal e use um editor de texto de sua escolha - eu sou um cara neovim, então digitei (não vem automaticamente com o Mac ... outra história para outro dia)
Etapa 4: você verá aproximadamente na linha 112
Mudar para
* você notará que este arquivo tem acesso somente leitura, então se você estiver usando o vim ou o neovim
Etapa 5: vá para o diretório inicial e edite o arquivo .bash_profile
Então
e adicione
para o arquivo e depois salve
Etapa 6: em relação ao Macintosh HD, localize caminhos e adicione-os
então
e adicione
* você notará novamente que este arquivo tem acesso somente leitura, então se você estiver usando o vim ou o neovim
então
em seguida, atualize o terminal com suas alterações executando
Finalmente
E Viola. Lembre-se de que é uma vibração.
fonte
libs
interior demysql_config
já estava conforme descrito na seção "Alterar para". No entanto, adicionar o PATH paraprivate/etc
ajudar a permitir a instalação global domysqlclient
que estava falhando antes.Se você não quiser instalar o mysql completo, podemos consertar isso apenas instalando mysqlclient. Assim
brew install mysqlclient
que o cmd for concluído, ele pedirá para adicionar a linha abaixo a~/.bash_profile
:echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
Feche o terminal e inicie um novo terminal e prossiga com
pip install mysqlclient
fonte
Estou executando o Python 3.6 no MacOS Catalina. Meu problema foi que tentei instalar
mysqlclient==1.4.2.post1
e continua lançando o erro mysql_config não encontrado.Estas são as etapas que executei para resolver o problema.
brew unlink mysql
) -brew install mysql-connector-c
brew info openssl
- isso lhe dará mais informações sobre o que precisa ser feito para colocar o openssl no PATHecho 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
fonte
Além disso, isso acontece quando eu estava instalando o mysqlclient,
Como o usuário 3429036 disse,
fonte
Esta resposta é para usuários de MacOS que não instalaram do,
brew
mas sim do oficial.dmg/.pkg
. Esse instalador não consegue editar o seuPATH
, fazendo com que as coisas saiam da caixa:mysql
,mysqladmin
,mysql_config
, etc não pode ser encontrado, e como resultado:mysqlclient
O que você precisa fazer é anexar a
bin
pasta MySQL (normalmente/usr/local/mysql/bin
em seuPATH
adicionando esta linha em seu~/.bash_profile
arquivo:export PATH="/usr/local/mysql/bin/:$PATH"
Você deve então recarregar o seu
~/.bash_profile
para que a alteração tenha efeito na sua sessão atual do Terminal:source ~/.bash_profile
Antes de instalar
mysqlclient
, no entanto, você precisa aceitar a licença XcodeBuild:sudo xcodebuild -license
Siga as instruções para despedir sua família, após o que você poderá instalar
mysqlclient
sem problemas:pip install mysqlclient
Depois de instalar isso, você deve fazer mais uma coisa para corrigir um bug de tempo de execução que vem com o MySQL ( Dynamic Library
libmysqlclient.dylib
not found ), adicionando esta linha ao caminho das bibliotecas dinâmicas do sistema:export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH
fonte
sudo lsof -i :3306
para ver o PID do processo MySQL ativo e, em seguida, executandosudo -P <pid>
nele para ver seus arquivos abertos. Isso veio com o/usr/local/mysql-8.0.18-macos10.14-x86_64/bin
que eu adicionei$PATH
e voila !Se você instalou o mysql usando o Homebrew especificando uma versão, então mysql_config estará presente aqui. - /usr/local/Cellar/[email protected]/5.6.47/bin
pode encontrar o caminho da bin sql usando o comando ls em / usr / local / diretório
Adicione o caminho para o perfil do bash como este.
fonte
O problema no meu caso era que eu estava executando o comando dentro de um ambiente virtual python e não tinha o caminho para / usr / local / mysql / bin, embora eu o tenha colocado no arquivo .bash_profile. Apenas exportar o caminho no ambiente virtual funcionou para mim.
Para sua informação, sql_config reside dentro do diretório bin.
fonte
Instalar o brew ou apt-get também não é fácil para mim, então baixei o mysql via: https://dev.mysql.com/downloads/connector/python/ , instalei. Portanto, posso encontrar mysql_config neste diretório: / usr / local / mysql / bin
a próxima etapa é:
fonte