![](/img/trans.png)
[英]Library not loaded: @rpath/libmysqlclient.21.dylib Reason: image not found Django migrate error using mysqlclient DB driver and MySQL 8 with macOS
[英]Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib and Reason image not found
Traceback (most recent call last):
File "/Applications/MAMP/htdocs/Minor Project/xyz.py", line 5, in <module>
import config
File "/Applications/MAMP/htdocs/Minor Project/config.py", line 5, in <module>
import MySQLdb
File "/Users/brijeshlakkad/Library/Python/2.7/lib/python/site-packages/MySQLdb/__init__.py", line 19, in <module>
import _mysql
ImportError: dlopen(/Users/brijeshlakkad/Library/Python/2.7/lib/python/site-packages/_mysql.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib
Referenced from: /Users/brijeshlakkad/Library/Python/2.7/lib/python/site-packages/_mysql.so
**Reason: image not found**
当我使用“ brew install mysql ” 安装mysql时 ,将执行文件。 当我执行brew install mysql时,有两个不同的mysql都分别运行。 我执行了此文件,然后将所有数据存储在不同于phpmyadmin mysql的 本地 mysql中 。
简而言之,您的问题是您尝试使用古老的mysql-python
库,即MySQLdb
。 该库在MySQL 5.1天左右就被废弃了,因此它不支持MySQL 6和更高版本,并且您大概拥有MySQL 8.0,因此它所寻找的共享库不存在,因此image not found
错误。
Homebrew 确实包含一个mysql@5.5
软件包,我认为它带有一个正确名称的dylib,如果您真的想这样做的话,它可能已经够老了,可以与mysql-python
一起使用,但是不会受到支持。 。 或者,您可以下载MySQL 5.0或5.1源并自行构建(没有Mac二进制文件可以在当前macOS上运行的5.6之前的任何版本)。
但是更好的解决方案是使用仍然维护的库。 不幸的是,那里有很多选择,但是我给人的印象是,大多数人使用三大选择之一:
mysqlclient
是mysql-python
一个分支,它绑定到当前版本的C库( brew install mysql
或从MySQL / Oracle网站下载安装程序)。 PyMySQL
是纯Python的重写,它甚至不需要C库。 MySQL Connector/Python
是MySQL / Oracle从头开始编写的新实现。 (您可能希望此安装程序带有Oracle安装程序。) PyMySQL
是比mysqlclient
更好的直接替代品,它与Universe中的其他所有功能都可以很好地工作,并且它是编写良好的代码,如果遇到问题,则很容易调试……但是它可能会很慢。 而且,除非您需要维护一堆完整的现有代码,否则通常不需要完美的即插即用替换,只需进行非常接近的connect
调用并支持所有DB-API 2,并且mysqlclient
那。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.