Django Error loading MySQLdb module: No module named MySQLdb
Criando um projeto Django e configurando ele para trabalhar com o MySql, ao rodar o servidor... Error loading MySQLdb module
Este artigo é para quem estiver criando um projeto Django e configurando ele para trabalhar com o MySql, ao rodar o servidor com o
comando python manage.py runserver
e receber a seguinte mensagem abaixo:
Error loading MySQLdb module: No module named MySQLdb
Então vamos lá, a primeira questão a ser resolvida é: qual versão de Python e Django você está utilizando?
- Django 1.6 pode ser utilizado com Python 2
- Django 1.7 deve ser utilizado com Python 3
A solução depende da versão.
Resolvendo “No module named MySQLdb” com Python 2
No Debian execute…
apt-get install python-mysqldb
No CentOS (HedHat) execute…
yum install MySQL-python
Para fazer o teste final rode o servidor do Django python manage.py runserver
.
Nota:
Tentei instalar o pacote MySQL-python
através do PIP, veja o comando:
pip install MySQL-python
Foi um show de erros. No meu caso, a instalação reclamou do mysql_config.
EnvironmentError: mysql_config not found
Corrigi executando instalando o pacote python-mysqldb pelo apt-get (como já mencionado na receita acima):
apt-get install python-mysqldb
OK, aí tentei novamente instalar o mysql_config pip install MySQL-python
e…
Requirement already satisfied
Eu hein, vai entender!!!N
Resolvendo “No module named MySQLdb” com Python 3
Aqui é que mora o problema, pois eu acabei resolvendo com a ajuda do virtualenv, mas talvez você queira resolver sem a ajuda dele. Se for o caso, aconselho a tentar dessa forma (sem o virtualenv) e caso não consiga, tentar com o virtualenv.
Você deve instalar o PyMySQL com o pip só que o pip deve ser o da versão 3x.
Em outras palavras, o pip deve ter sido instalado com Python 3 e agora ele deve apontar para o Python 3, caso contrário você não conseguirá resolver o problema.
Para descobrir as versões do pip execute ls -l /usr/local/bin/pip*
Com os resultados obtidos experimente
pip --version
pip3 --version
pip3.2 --version
pip3.4 --version
No meu caso, digitnado pip3.2 --version
eu visualizo…
pip 1.5.6 from /usr/local/lib/python3.2/dist-packages (python 3.2)
Logo, eu tenho certeza de que pip3.2
(no meu caso) está funcionado com Python 3.
Pronto, agora é só instalar o driver:
pip3x install pymysql
Inclua no arquivo mysite/mysite/__init__.py
as linhas abaixo:
import pymysql
pymysql.install_as_MySQLdb()
Para testar, tente iniciar o servidor python manage.py runserver
.