【问题标题】:Django MySQL throws an error, Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib When I upgraded from 5.6 to 5.7 mysqlDjango MySQL 抛出错误,Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib 当我从 5.6 升级到 5.7 mysql
【发布时间】:2020-08-22 15:18:03
【问题描述】:

是的,这似乎是一个常见错误。但是我的环境还有其他问题。我已经从 MySQL 5.6 版本升级到 5.7。

我可以通过在控制台输入mysql来访问mysql5.7。

我已更新 DYLD_LIBRARY_PATH 以反映新的 5.7 位置

git:(parent-child) ✗ echo $DYLD_LIBRARY_PATH
/usr/local/opt/mysql@5.7/lib/:

但是由于某种原因,错误仍然说它正在尝试从 5.6 版本加载。

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/Users/vineeth/envs/automize2.0/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 16, in <module>
    import MySQLdb as Database
  File "/Users/vineeth/envs/automize2.0/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: dlopen(/Users/vineeth/envs/automize2.0/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib
  Referenced from: /Users/vineeth/envs/automize2.0/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
  Reason: image not found

注意错误提示它仍在尝试定位 /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib

自从出现此错误以来,我几乎重新安装了所有内容。

尝试了几种解决方案

Python mysqldb: Library not loaded: libmysqlclient.18.dylib

rails + MySQL on OSX: Library not loaded: libmysqlclient.18.dylib

似乎没有任何改变它的参考。

如何让它引用/usr/local/opt/mysql@5.7/lib/中的较新的

还使用 pip 重新安装了mysqlclient,但仍然没有运气。

欢迎帮助。从一天开始就一直在挣扎。

【问题讨论】:

  • 您是否还重新创建了该 virtualenv,以确保编译新版本的 MySQLdb 二进制模块 (_mysql)?
  • 另外,您不需要修改 DYLD_LIBRARY_PATH。
  • 是的,我尝试在新环境中使用新项目运行该项目。同样的错误。
  • 你用的是mysqlclient还是老旧的MySQL-python
  • 当你安装它时,它是从源代码编译还是使用缓存的轮子?

标签: mysql django


【解决方案1】:

将我的评论扩展为答案:

Pip 将源包编译成轮子,然后缓存到本地 Pip 缓存中。但是,它不知道可能影响二进制包编译方式的“环境”依赖项,在本例中是 MySQL 共享库。

重新创建 virtualenv 并没有直接的帮助,因为 Pip 将使用缓存的二进制轮(以避免重新编译)。

你可以:

【讨论】:

  • 我不知道这些详细信息存储在缓存中。我花了将近一天的时间试图弄清楚重新安装的东西,完全没有注意到这是在安装相同的存储配置。运行pip install --no-cache-dir mysqlclient 解决了这个问题。谢谢
猜你喜欢
  • 2015-10-11
  • 2016-02-19
  • 2012-06-06
  • 1970-01-01
  • 2021-07-08
  • 1970-01-01
  • 2012-03-06
  • 2013-12-08
  • 2018-07-18
相关资源
最近更新 更多