首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在OS X上使用Django中的MySQL时找不到libmysqlclient.18.dylib镜像

在OS X上使用Django中的MySQL时找不到libmysqlclient.18.dylib镜像
EN

Stack Overflow用户
提问于 2012-03-28 23:49:15
回答 6查看 14.2K关注 0票数 18

我开始学习Python/Django,并且遇到了我的第一个障碍。当尝试在settings.py中设置我的数据库时,内部服务器失败,出现以下错误:

代码语言:javascript
复制
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/base.py", line 16, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/rob/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/rob/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so
Reason: image not found

我已经找到了很多解决方案,大多数都涉及显式定义我的DYLD_LIBRARY_PATH值,但这对我不起作用。已安装MysQL-Python (v1.2.3)。

你知道我需要做些什么才能解决这个问题吗?

谢谢。

更新

代码语言:javascript
复制
DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': 'django_tutorial',                      # Or path to database file if using sqlite3.
    'USER': 'root',                      # Not used with sqlite3.
    'PASSWORD': '',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
  }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-29 02:20:48

从您的评论中可以看出,libmysqlclient dylib是使用非绝对库名称路径安装的。这与OS上的标准实践相反,OS在这方面与大多数其他Unix-y系统不同。您应该能够通过使用install_name_tool修改.so文件中的路径来永久修复该问题(至少在您的下一次升级之前),或者您可以通过确保您的Django实例运行时定义了以下环境变量来使其工作:

代码语言:javascript
复制
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib

您还可以通过在/usr/local/lib中创建到/usr/local/mysql/lib中的dylib的符号链接来使其工作,因为/usr/local/lib位于默认的动态加载搜索路径上,所以(未经测试!)类似于:

代码语言:javascript
复制
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

更好的长期解决方案是不使用Python import MySQLdb error - Mac 10.6中建议的损坏的MySQL客户端安装。

票数 38
EN

Stack Overflow用户

发布于 2015-11-13 21:50:04

使用mysqlhomebrew安装,这对我很有效:

代码语言:javascript
复制
$ mdfind libmysqlclient
/usr/local/Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib
/usr/local/Cellar/mysql/5.7.9/lib/libmysqlclient.a
/usr/local/Cellar/mysql/5.6.27/lib/libmysqlclient.18.dylib
/usr/local/Cellar/mysql/5.6.27/lib/libmysqlclient.a
/usr/local/Cellar/mysql/5.6.26/lib/libmysqlclient.18.dylib
/usr/local/Cellar/mysql/5.6.26/lib/libmysqlclient.a

$ sudo ln -s /usr/local/Cellar/mysql/5.6.27/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
票数 2
EN

Stack Overflow用户

发布于 2012-03-29 00:07:05

确保您不仅拥有MySql-Python,还拥有实际的MySql。MySQL-python正在尝试加载mysql库,其位置应该类似于/usr/local/mysql-VERSION/lib。

尝试运行

代码语言:javascript
复制
mdfind libmysqlclient

在命令行上。浏览一下这些结果,如果您没有看到缺少的文件(libmysqlclient.18.dylib),那么您可能没有正确安装mysql。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9911195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档