3
respostas

Erro ao instalar MySQLdb

Ola tudo bem, alguem teve problema com isso? parece que essa biblioteca esta depreciada, o que fazer nesse caso?

Obrigado DEPRECATION: The -b/--build/--build-dir/--build-directory option is deprecated. pip 20.3 will remove support for this functionality. A possible replacement is use the TMPDIR/TEMP/TMP environment variable, possibly combined with --no-clean. You can find discussion regarding this at https://github.com/pypa/pip/issues/8333. ERROR: Could not find a version that satisfies the requirement MySQLdb (from versions: none) ERROR: No matching distribution found for MySQLdb

3 respostas

Oi Uilan, como vai?

Para esse caso, podemos utilizar uma biblioteca alternativa, o o mysql connector. Antes, caso não tenha o MySQL instalado em seu computador, veja esta aula. No minuto 7:50 é configurado as credenciais de senha do banco, o usuário padrão é o root. Essas credenciais são importantes para colocarmos no campo de host e password no código.

Após isso, para instalar o mysql connector, digite:

pip install mysql-connector-python

Fiz algumas adaptações nos arquivos de banco de dados que o professor disponibiliza(prepara_banco.py e dao.py) para que você consiga criar as tabelas do banco e utilizar as funções de manipulação do mesmo. Baixe-os nesse link. É necessário alterar no arquivo prepara_banco.py para suas credenciais do MySQL, colocando sua senha e seu usuário do banco:

conexao = mysql.connector.connect(
    host="localhost",
    user="seu usuario",
    port = 3306,
    password="sua senha",
    auth_plugin='mysql_native_password'
)

E após isso, execute:

python prepara_banco.py

O resultado esperado são os dados que foram inseridos no banco. Exemplo:

 -------------  Usuários:  -------------
Danilo
Luan Marques
Nico
 -------------  Jogos:  -------------
God of War 4
NBA 2k18
Rayman Legends
Super Mario RPG
Super Mario Kart
Fire Emblem Echoes

Essas modificações que foram feitas no arquivo não impactam no aprendizado do curso, as funções são as mesmas, muda uma coisinha ou outra em relação a conexão com o banco.

Realize os seguinte passos no arquivo jogoteca.py para que possamos utilizar o mysql-connector-python:

  • Altere a linha: from flask_mysqldb import MySQL para import mysql.connector

  • Altere o trecho:

app.config['MYSQL_HOST'] = "localhost"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = "admin"
app.config['MYSQL_DB'] = "jogoteca"
app.config['MYSQL_PORT'] = 3306

Para:

db = mysql.connector.connect(
    host="localhost",
    user="seu usuario",
    port = 3306,
    password="sua senha",
    database = "jogoteca",
    auth_plugin='mysql_native_password'
)
  • Exclua a linha: db = MySQL(app)

Após isso, tente executar o arquivo jogoteca.py. Aparecerá algo como:

Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Abra no navegador o link que aparecer para você, no meu caso foi: http://127.0.0.1:5000/ e veja se deu certo =)

A saída esperada é uma página com os nossos jogos:

image

Tente fazer esses procedimentos. Qualquer coisa estou por aqui, a gente vai conversando.

Fico no aguardo.

Obrigado por responder... essa parte eu tinha feito.. um aluno acho que colocou no forum. é pq no caso.. na hora de inserir pelo adicionar novo jogo.. não ta inserindo.. vou ver o porque. Mas por hora muito obrigado

Nesse passo a passo que mostrei, utilizamos uma biblioteca alternativa. Caso não consiga inserir, sugiro que tente com ela. A MySQLdb(que mostra no seu log de erro) não possui suporte para as versões mais recentes do Python.

Qualquer coisa estou por aqui.