繁体   English   中英

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

[英]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之前的任何版本)。

但是更好的解决方案是使用仍然维护的库。 不幸的是,那里有很多选择,但是我给人的印象是,大多数人使用三大选择之一:

  • mysqlclientmysql-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM