Erro de importação: nenhum módulo chamado MYSQLdb

0

Eu tenho um problema, portanto, uma conexão de um python ao banco de dados local do MySQLdb.

A mensagem de erro é:

import MYSQL    
ImportError:No module named MYSQLdb.

Este é um script em python 3.4 para conectar meu banco de dados MYSQL local.

import MYSQLdb
conn=MYSQLdb.connect (host ="localhost", user="root" , passwd="abcd",db="nomi")
cursore=conn.cursor()
name=input("Write your name :   ")

x="insert into user (name) values ('%s')"%(name)
cursore.excute(x)
connet.comit()

PS: Você pode me ajudar por favor?

    
por Linus Strike 09.02.2015 / 12:50

5 respostas

4

Você precisa instalar o módulo com:

sudo apt-get install python-mysqldb

Referência: Este tópico no SO

    
por user270902 09.02.2015 / 13:08
1

Infelizmente o MySQLdb não suporta o Python 3.

Você basicamente tem duas opções:

  1. Execute seu script usando python2.7, assim você não precisará alterar o módulo MySQL. A desvantagem é que você provavelmente terá que converter algum código para python2.x.

  2. Procure os módulos compatíveis com python3.x, conforme explicado aqui: Python 3.4.0 com banco de dados MySQL .

por Sylvain Pineau 09.02.2015 / 13:39
1

Eu resolvi esse problema com a seguinte linha

pip install pymysql

Também atualizei a linha de configuração do MySql para

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://.............'
    
por Napolean 20.09.2017 / 17:30
0

Até onde eu sei, o MySQLdb não suporta o Python 3. A partir da página '[MySQL-python]' 1 atualizado em 2013-06-08:

* Python versions 2.4-2.7; Python 3 support coming soon.

O mysqlclient-python ( link ) reivindica suporte para python 3, mas não tenho experiência com esse produto. Pessoalmente, eu uso o pyodbc (também requer o libmyodbc) que parece muito similar do ponto de vista da programação.

    
por Marc Vanhoomissen 09.02.2015 / 14:13
0

sudo apt install libmysqlclient-dev então

  • para python 2.x:

    pip install mysql-python

  • para python 3.x:

    pip install mysqlclient

por technodivesh 20.06.2018 / 20:10