在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题
Posted
技术标签:
【中文标题】在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题【英文标题】:Having an issue with setting up MySQLdb on Mac OS X Lion in order to support Django 【发布时间】:2011-11-28 03:29:49 【问题描述】:所以我很确定我已经成功地完成了我的 mysqldb 安装。我在全新安装的 OS X Lion 上正确安装了以下所有内容:
phpMyAdmin
MySQL 5.5.16
Django 1.3.1然而,当我尝试在 django 控制台中运行“from django.db import connection”时,我得到以下信息:
从 django.db 导入连接 Traceback(最近调用 最后):文件“”,第 1 行,在文件中 "/Library/Python/2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/init.py", 第 78 行,在 连接 = 连接[DEFAULT_DB_ALIAS] 文件 "/Library/Python/2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/utils.py", 第 93 行,在 getitem 中 后端 = load_backend(db['ENGINE']) 文件 "/Library/Python/2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/utils.py", 第 33 行,在 load_backend 中 返回 import_module('.base', backend_name) 文件 "/Library/Python/2.7/site-packages/Django-1.3.1-py2.7.egg/django/utils/importlib.py", 第 35 行,在 import_module 中 导入(名称)文件 "/Library/Python/2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/backends/mysql/base.py", 第 14 行,在 raise ImproperlyConfigured("加载 MySQLdb 模块时出错:%s" % e) 配置不当:加载 MySQLdb 模块时出错:dlopen(/Users/[my 用户名]/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2):库未加载:libmysqlclient.18.dylib 引用自: /用户/[我的 用户名]/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so 原因:找不到图片
我不知道为什么会这样,有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:我为这个问题找到了以下解决方案。它对我有用。我从 PyCharm 运行 python 控制台时遇到了这个问题。
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
【讨论】:
【参考方案2】:简单,
在某处编辑您的 .bash_profile (vi ~/.bash_profile),添加以下行:
导出 DYLD_LIBRARY_PATH="/usr/local/mysql/lib"
这一行假设你的 mysql 安装目录在 /usr/local/mysql/。
这将解决通过在 shell 中启动的 python 中断器执行(.bash_profile 导出 MySQLdb 模块加载'libmysqlclient.18.dylib'所需的路径)。
如果您在使用 PyCharm 等 Python IDE 时遇到此问题,请将 DYLD_LIBRARY_PATH 变量添加到启动模块配置中。
我希望这会有所帮助:)
还有,
要完全理解这个问题,请阅读以下部分:
http://mysql-python.sourceforge.net/FAQ.html#importerror
这详细解释了这个错误
【讨论】:
好的,所以 mysql 安装到“/usr/local/mysql-5.5.16-osx10.6-x86_64”我在我的 .bash_profile 中添加了适当的行。你正确地推断出我正在运行 PyCharm,所以我进入了 Run 菜单下的“Edit Configurations”并添加了“DYLD_LIBRARY_PATH='/usr/local/mysql-5.5.16-osx10.6-x86_64/lib/'”在环境变量下。但是,当我尝试通过 PyCharm 运行程序时,我仍然遇到完全相同的问题... (另外,我似乎在 cmets 中遇到了换行问题...) 去掉路径值中的单引号 我很乐意提供帮助。我有同样的问题,让这个工作令人沮丧:) 使用它来获取特定的 pyCharm 解释器/virtualenv,但请记住,@asgard 的答案可以全局解决问题【参考方案3】:如果你还没有安装 pip,然后运行
pip install MySQL-Python
【讨论】:
刚刚试过,没有骰子。它告诉我 “要求已经满足(使用 --upgrade 升级):/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel 中的 MySQL-Python。鸡蛋” 所以我使用了“--upgrade”标志,它通过了动作,它仍然给我同样的错误...... 你是怎么安装mysql的?您是否验证了您的 mysql 安装工作正常并且您可以连接、创建数据库等? 我做到了,问题不在于 mysql,而在于将 mysql 连接到 python。 你是怎么安装mysql的?通过使用brew
完成的 mysql 安装,pip 将在大多数用途中正确进行设置(一些 Python IDE 除外)。你安装的是 64 位还是 32 位版本的 MySQL?
我很确定我用过 brew,但老实说我不记得了。有没有简单的方法进行 2 倍检查?以上是关于在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题
Mac OS X 平台上都有哪些好用且免费的MySQL客户端工具
如何在 Mac OS Lion 上从命令行启动 MySQL 服务器?
Mac OS X Mountain Lion 下如何独立设置鼠标和触摸板的滚动方向?