未加载库:/usr/local/opt/mysql/lib/libmysqlclient.21.dylib未找到原因图像

b1payxdu  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(698)
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。

ibrsph3r

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 涵盖了这一点。

相关问题