3
respostas

Erra ao rodar o prepara banco

Não deu nenhum erro na instalação do Flask MySQLDB e o banco de dados está funcionando corretamente.

Alguém sabe como posso resolver?

Traceback (most recent call last):
  File "/Users/macbookpro/Documents/Alura/jogoteca/prepara_banco.py", line 1, in <module>
    import MySQLdb
  File "/Users/macbookpro/Documents/Alura/jogoteca/venv/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    import _mysql
ImportError: dlopen(/Users/macbookpro/Documents/Alura/jogoteca/venv/lib/python3.7/site-packages/_mysql.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
  Referenced from: /Users/macbookpro/Documents/Alura/jogoteca/venv/lib/python3.7/site-packages/_mysql.cpython-37m-darwin.so
  Reason: image not found
3 respostas

Oi Igor,

Você executou os comandos:

brew install mysql
pip3 install mysqlclient

Antes de tentar executar o projeto? Pode ser a falta do mysqlclient esse erro.

Vê aí e me avisa.

Luan

Oi Luan,

Executei os dois comandos, mas mesmo assim o erro continua na hora de executar o 'prepara_banco.py'.

(venv) MacBooks-MBP-2:jogoteca macbookpro$ brew install mysql
Warning: mysql 8.0.12 is already installed and up-to-date
To reinstall 8.0.12, run `brew reinstall mysql`
(venv) MacBooks-MBP-2:jogoteca macbookpro$ 
(venv) MacBooks-MBP-2:jogoteca macbookpro$ 
(venv) MacBooks-MBP-2:jogoteca macbookpro$ pip install mysqlclient
Requirement already satisfied: mysqlclient in ./venv/lib/python3.7/site-packages (1.3.13)
(venv) MacBooks-MBP-2:jogoteca macbookpro$ 

Eu instalei o mysql a partir do DMG do site do MySQL. O problema da biblioteca eu resolvi com:

macbookdaniel:lib dclobato$ cd /usr/local/lib/
macbookdaniel:lib dclobato$ pwd
/usr/local/lib
macbookdaniel:lib dclobato$ ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib 

Só que, depois, dá um outro erro...

/Users/dclobato/PycharmProjects/Flask2/jogoteca/venv/bin/python /Users/dclobato/PycharmProjects/Flask2/jogoteca/prepara_banco.py
Traceback (most recent call last):
  File "/Users/dclobato/PycharmProjects/Flask2/jogoteca/prepara_banco.py", line 1, in <module>
    import MySQLdb
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/_mysql.cpython-37m-darwin.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/_mysql.cpython-37m-darwin.so
  Reason: image not found

Process finished with exit code 1

Resolvi esses erros todos atualizando e relançando a openssl pelo brew.

$ brew install --upgrade openssl
$ brew unlink openssl && brew link openssl --force
$ cd /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib