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分别运行。我执行了这个文件,然后所有数据都存储在本地mysql中,不同于phpmyadmin mysql。
1条答案
按热度按时间ibrsph3r1#
简言之,你的问题是,你试图使用古老的
mysql-python
图书馆,又名MySQLdb
. 这个库在MySQL5.1时代就被废弃了,所以它不支持MySQL6和更高版本,而且您可能有MySQL8.0,所以它要找的共享库不存在,因此image not found
错误。自制软件包括
mysql@5.5
包,我认为它有一个具有正确名称的dylib,可能已经足够旧了mysql-python
,如果你真的想这样做,但它不会得到支持。或者你可以下载MySQL5.0或5.1源代码并自己构建它(在当前的macos上没有任何比5.6版本更老的mac二进制文件),这肯定会起作用。但更好的解决方案是使用一个仍在维护的库。不幸的是,有很多选择,但我得到的印象是,大多数人使用三大选择之一:
mysqlclient
是一把叉子mysql-python
,它绑定到c库的当前版本(brew install mysql
或者从mysql/oracle网站下载安装程序)。PyMySQL
是纯python的重写,它甚至不需要c库。MySQL Connector/Python
是mysql/oracle从头开始编写的新实现(您可能希望oracle安装程序与此一起使用。)PyMySQL
是一个更好的替代品比下降mysqlclient
,它可以很好地处理宇宙中的所有东西,而且它是编写良好的代码,如果您有问题,很容易调试…但是它可能非常慢。除非你有一大堆现有的代码要维护,否则你通常不需要一个完美的替代品,只是一个非常接近的替代品connect
调用并支持所有db api 2,以及mysqlclient
涵盖了这一点。