Nenhum módulo chamado MySQLdb

400

Estou usando o Python versão 2.5.4 e instalo o MySQL versão 5.0 e o Django. O Django está funcionando bem com Python, mas não com o MySQL. Estou usando-o no Windows Vista.

jbcedge
fonte
43
pip install mysql-pythonoupip install mysqlclient
Cœur
13
Eu tive que instalar sudo apt-get install libmysqlclient-devpara fazê-lo funcionar.
b00r00x0
O pip instala o mysqlclient trabalhado no Windows x64 10, You Rock Cœur
Itachi Sama
8
Para Python3.6 sudo apt-get install libmysqlclient-deve pip3 install mysqlclientfuncionou para mim
Umair

Respostas:

639

Você precisa usar um dos seguintes comandos. Qual deles depende de qual sistema operacional e software você possui e usa.

  1. easy_install mysql-python (sistema operacional misto)
  2. pip instala o mysql-python (mistura os / python 2)
  3. pip instala o mysqlclient (mix os / python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ...)
  5. cd / usr / ports / database / py-MySQLdb && torna a instalação limpa (FreeBSD)
  6. yum instale o MySQL-python (Linux Fedora, CentOS ...)

Para Windows, consulte esta resposta: Instale o mysql-python (Windows)

derevo
fonte
11
Eu tive que atualizar minha versão do setuptools para corresponder à minha versão atualizada do python no Mac OS antes de poder fazer isso funcionar.
Jonathan Adelson
4
e que tal instalar no virtualenv com python 3 nele? Eu usei: pip instalar mysql-python apenas para obter: ImportError: No módulo chamado ConfigParser
Iliyan Bobev
9
No Python 3, o ConfigParser foi renomeado para configparser para conformidade com o PEP 8. Parece que o pacote que você está instalando não suporta Python 3. MySQL-python não suporta atualmente Python 3.
Derevo
2
Recebo este erro ao usar 1 ou 2 em OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal 30/06
11
FYI - Estou no ubuntu 18 e estou usando o python3.7. Depois de fazer "pip install mysqlclient", eu precisava fazer o "sudo apt-get install libmysqlclient-dev" para obter uma instalação bem-sucedida.
Rashmi Singh
144

... e lembre-se de que não existe MySQLdb para python3.x

(Eu sei que a pergunta é sobre python2.x, mas o Google classifica esse post bastante alto)


EDIT: Como declarado nos comentários, há um fork do MySQLdb que adiciona suporte ao Python 3: github.com/PyMySQL/mysqlclient-python

Janek Olszak
fonte
Urghhgwaarrbl ... lá se vai minha esperança de usar python3 em meu aplicativo Django
Don Cheadle
6
Felizmente, há uma seleção de alternativas, muitos dos quais usam a mesma API: Python 3 e MySQL
Anthony Geoghegan
4
mysqlclient é um fork do MySQLdb que funciona bem com Python 3.
ostrokach
@JanekOlszak Eu não sabia disso - levei apenas um dia de muitas palavrões e batidas no teclado - até ler isso e trocar para 2,7. E adivinhem, tudo funciona ótimo ~
3kstc
Minha jornada, isso -> isso -> isso . E então, finalmente consegui instalá-lo com sucesso.
daka
68

se sua versão python é 3.5, faça pip install mysqlclientoutras coisas não funcionaram para mim

goksel
fonte
Eu não sei por que essa resposta foi down-votado, mas mysqlclienté um fork do projeto MySQLdb, e posso confirmar isso funcionou para mim no Windows 10
Hamman Samuel
11
Trabalhou para mim no Arch Linux
Lucas Dupin
Trabalhou no Ubuntu 16.10, Python 3.5.2+
tivadj
Trabalhou no Ubuntu 14.04 Python 3.4.3
gpk27
Trabalhou no macOS, Python 3.6.0
Miguel Mota
48

mysqldbé um módulo para Python que não vem pré-instalado ou com o Django. Você pode baixar mysqldb aqui .

Evan Fosmark
fonte
11
Tentando instalar o MySQL-python-1.2.1 Recebo a mensagem ImportError: Nenhum módulo chamado setuptools Tentando instalar o setuptools, obtenho o zlib não disponível, não deve ser fornecido com o python?
Pierre de LESPINAY
após o download do módulo você precisa editar o arquivo site.cfg com o caminho certo para mysql_config ea corridapython setup.py install
ntanase
34

Ubuntu:

sudo apt-get install python-mysqldb
panckreous
fonte
25

Observe que isso não foi testado para o python 3.x

Em CMD

pip install wheel
pip install pymysql

em settings.py

import pymysql
pymysql.install_as_MySQLdb()

Funcionou comigo

A.Raouf
fonte
3
"pip3 install mysqlclient" resolve o problema do python3.6 /
showmyroutes
Eu não posso aprovar isso o suficiente! A única solução que funciona em Databricks ..
Foxan Ng
13
pip install PyMySQL

e adicione essas duas linhas ao seu Project / Project / init .py

import pymysql
pymysql.install_as_MySQLdb()

Funciona em WIN e python 3.3+

alphiii
fonte
Eu usei sua sugestão com sucesso. Somente a mudança estava no comando import: import pymysql Havia no tipo.
Jorge
trabalhou para mim em Windows 10, python 3.6, ambiente virtual
Yikang Luo
11
Amo esse truque. Embora eu tenha conseguido fazê-lo funcionar sem ele, ainda tive que incorporar um binário whql.
Ishmael
Deve ser a resposta correta.
Jossie Calderon 17/04
12

Tente isso.

pip install MySQL-python
Venkat Kotra
fonte
2
Como isso se aplica especificamente a ambientes virtuais?
Tim
9

para janela:

pip install mysqlclient pymysql

então:

importar pymysql pymysql.install_as_MySQLdb ()

para python 3 Ubuntu

sudo apt-get install -y python3-mysqldb
Saurabh Chandra Patel
fonte
A execução de apenas "pip install mysqlclient pymysql" no Windows 10 (Python 3.6.2) resolveu meu problema.
Rick Sarvas
8

Se o pip install mysqlclient produz um erro e você usa o Ubuntu, tente:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
Kostyantyn
fonte
6

Encontrei a mesma situação no Windows e procurei a solução.

Vendo esta publicação Instale o mysql-python (Windows) .

Ele aponta que a instalação de um ambiente de pip é difícil, precisa de muitas outras dependências.

Mas finalmente sei que, se usarmos mysqlclientuma versão reduzida 1.3.4, ela não precisará mais desses requisitos, então tente:

pip install mysqlclient==1.3.4
Alfred Huang
fonte
4
  • Vá para o diretório do seu projeto com cd .
  • source / bin / enable (ative seu ambiente, se não tiver sido anteriormente).
  • Execute o comando easy_install MySQL-python
GrvTyagi
fonte
11
Não funciona #ModuleNotFoundError: No module named 'ConfigParser'
6117 TomSawyer
4
pip install --user mysqlclient 

acima funciona para mim como charme para mim.Eu vou o erro de sqlalchemy, na verdade. Informações ambientais:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8

Forhad
fonte
3

Graças ao derevo, mas acho que há outra boa maneira de fazer isso:

  1. Baixe e instale o ActivePython
  2. Prompt de Comando Aberto
  3. Tipo pypm install mysql-python
  4. Leia as notas específicas para este pacote.

Eu acho que pypmé mais poderoso e confiável do que easy_install.

Afshin Mehrabani
fonte
Parece que requer uma assinatura pagaCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.
Acho que não. Lembro-me de ter instalado isso sem nenhum problema.
Afshin Mehrabani
por que você acha que o pypm é mais poderoso e confiável do que o easy_install? algum ponto para apoiar isso? algum artigo / blogpost?
Sandeep Raju Prabhakar
2
Acho que este seria o artigo / post do blog para apoiar isso: PI significa, vamos lá, você apóia esse comentário com argumentos tipicamente técnicos, não com alguém que afirma o mesmo, mas também pode não ter argumentos. No entanto, os argumentos seria bom;)
Herbert
3

Para Python 3+ versão

instalar mysql-connectorcomo:

pip3 install mysql-connector 

Exemplo de código de conexão do banco de dados Python:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

Resultado:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

Isso significa que o banco de dados está conectado corretamente.

Om Sao
fonte
3

Pessoalmente, recomendo o uso pymysqldo conector MySQL genuíno, que fornece uma interface independente da plataforma e pode ser instalado atravéspip .

E você pode editar o esquema de URL SQLAlchemy assim: mysql+pymysql://username:passwd@host/database

Justin Lee
fonte
3

Para Python 3.6+ sudo apt-get install libmysqlclient-deve pip3 install mysqlclient faz o truque

Umair
fonte
2

Se você estiver rodando no Vista, convém verificar a pilha do Bitnami Django. É uma pilha all-in-one de Apache, Python, MySQL, etc. empacotada com instaladores de plataforma cruzada Bitrock para tornar realmente fácil começar. Ele roda em Windows, Mac e Linux. Ah, e é totalmente gratuito :)

Daniel Lopez
fonte
Então, por que você disse "Se você está executando o Vista", se ele funciona mais do que o Vista? Isso é enganoso e confuso.
Anthony
3
Para Anthony: Eu só descobri engraçado que o top-votaram comentário fornecidas instruções para Linux, FreeBSD e OSX, mas não para o Vista, conforme especificado pelo cartaz
Daniel Lopez
2

Eu tentei os métodos acima, mas ainda nenhum módulo chamado 'MySQLdb', finalmente, consegui

easy_install mysql-python

meu env é unbuntu 14.04

Pythoner
fonte
sucesso para virtualenv / python2.7
nguyên
1

No OSX esses comandos funcionaram para mim

brew install mysql-connector-c 
pip install MySQL-python
Joe Inner
fonte
1

Se você estiver usando SQLAlchemy e o erro estiver em /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

então você pode ter perdido o conector mysqldb SQLAlchemye a solução é reinstalar o sqlalchemy após a instalação do mysql-pythonmódulo.

mtoloo
fonte
0

Win10 / Python27 isso funcionou para mim:

easy_install mysql-python

todos os outros 'pip install ...' falharam com erros de dependência

Cris
fonte
0

Nenhuma das opções acima funcionou para mim em uma nova instalação do Ubuntu 18.04 via imagem do docker.

O seguinte resolveu para mim:

apt-get install holland python3-mysqldb

jfxninja
fonte
0

No meu mac executando o Catalina v10.15.2, tive o seguinte conflito de versão do MySQLdb:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

Para resolvê-lo, fiz o seguinte:

pip uninstall MySQL-python
pip install MySQL-python
ScottK
fonte
0

No Debian Buster, a seguinte solução funcionou para mim com python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
nsssayom
fonte
0

Estou no ubuntu (linux) e o que funcionou para mim foi

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

e finalmente

pip install mysqlclient
Arsalan Ahmad Ishaq
fonte