из flask_mysqldb импортировать MySQL

РЕДАКТИРОВАТЬ: Проблема решена. Я смог, наконец, понять проблему с некоторой помощью другого ученика в классе Udemy вместе с ответом от Isaac_R здесь. Мне пришлось отредактировать свой .bash_profile с помощью следующих двух строк кода, и я могу установить MySQLdb, и теперь он работает по назначению. Вот две строки, которые я добавил в свой .bash_profile.

экспорт LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ экспорт DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

РЕДАКТИРОВАТЬ № 2: я только что запустил еще один проект mysql в новом файле, мне пришлось запустить pip3 install mysqlclient, прежде чем я смог установить mysqldb, просто предупредите кого-то, у кого может быть такая проблема, как у меня.

Я совершенно новичок в кодировании, поэтому, пожалуйста, извините мое потенциальное невежество, я изо всех сил стараюсь узнать что-то новое, и все шло хорошо, пока я не столкнулся с этой проблемой, которую я не могу пройти. Я на Mac с 10.15.4 в python3.8.2, пытаясь создать базу данных MySQL, чтобы использовать ее в блоге, который я пытаюсь создать. Я установил клиент mysql вместе с pip3 install flask-mysqldb. Я получаю успешное подтверждение установки, вот где начинаются мои проблемы. В Atom я использую команду из ''flask_mysqldb import MySQL'', на которую я получаю следующую ошибку

Traceback (most recent call last):
  File "app.py", line 3, in <module>
    from flask_mysqldb import MySQL
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask_mysqldb/__init__.py", line 1,
 in <module>
    import MySQLdb
  File "IndentationError: unexpected indent
(venv) tylernelson@Tylers-MacBook-Air My Project % python3 app.py
Traceback (most recent call last):
  File "app.py", line 3, in <module>
    from flask_mysqldb import MySQL
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask_mysqldb/__init__.py", line 1,
 in <module>
    import MySQLdb
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/__init__.py", line 18, in <
module>
    from . import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-
38-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-3
8-darwin.so
Reason: image not found"

Я также могу опубликовать весь свой (будь то очень короткий) файл кода, если это поможет решить проблему. Большое спасибо за ваши идеи и помощь!


person tylern012    schedule 21.04.2020    source источник
comment
делает это помощь?   -  person danblack    schedule 22.04.2020
comment
Это дало мне еще несколько вариантов, но, к сожалению, еще не решило мою проблему. однако это принесло что-то новое, когда я попробовал команду sudo pip3 install flask-mysqldb. Я получил это взамен, и я не знаю, важно это или нет. ПРЕДУПРЕЖДЕНИЕ. Каталог «/Users/tylernelson/Library/Caches/pip» или его родительский каталог не принадлежит текущему пользователю или недоступен для записи. Кэш отключен. Проверьте разрешения и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам может понадобиться флаг sudo -H. Спасибо за помощь.   -  person tylern012    schedule 22.04.2020


Ответы (1)


Я прошел через ту же проблему, я нашел лучшие решения в этом вопросе:

Python mysqldb: библиотека не загружена: libmysqlclient.18.dylib

Я рекомендую вам пройти через все перечисленные там параметры, в моем случае выполните команду

экспортировать DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

решил мои проблемы, большую часть времени, когда mysql устанавливается, каталог mysql должен быть переименован в просто mysql.

person Isaac_R    schedule 23.04.2020
comment
Спасибо за ваш ответ, я отредактировал свой .bash_profile, чтобы включить эту строку кода, и, к сожалению, он все еще не работает. Вот что у меня сейчас есть в .bash_profile. # Setting PATH for Python 3.8 # The original version is saved in .bash_profile.pysave # PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}" export PATH # export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH - person tylern012; 27.04.2020