【问题标题】:Error configuring django with python-mysql in Mac OS 10.6.6在 Mac OS 10.6.6 中使用 python-mysql 配置 django 时出错
【发布时间】:2011-07-08 14:27:09
【问题描述】:

我的设置:

  • Mac OS 10.6.6 - x86_64
  • MySQL 5.5.8
  • Python 2.7.1
  • Django 1.2.5
  • 通过easy_install安装mysql-python

我的情况:

我一直在努力让我的设置正常工作。问题出在 mysql-python 接口上。最初,我遇到了一个类似的问题(与我在 Django 中遇到的问题)在 python 中执行导入语句:

import MySQLdb

但我读了这个question/solution,证明它成功修复了它。 我安装了 django,它运行良好,但 mysql 接口有问题。 当我启动终端并输入时:

>> python manage.py dbshell

产生以下错误:

Traceback(最近一次调用最后一次): 文件“manage.py”,第 11 行,在 执行管理器(设置) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第 438 行,在 execute_manager 实用程序.execute() 执行中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第 379 行 self.fetch_command(子命令).run_from_argv(self.argv) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第 261 行,在 fetch_command klass = load_command_class(app_name, subcommand) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第 67 行,在 load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) import_module 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py”,第 35 行 进口(名称) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/dbshel​​l.py”,第 4 行,在 从 django.db 导入连接,DEFAULT_DB_ALIAS 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/init.py”,第 77 行,在 连接 = 连接[DEFAULT_DB_ALIAS] getitem 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第 92 行 后端 = load_backend(db['ENGINE']) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第 33 行,在 load_backend return import_module('.base', backend_name) import_module 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py”,第 35 行 进口(名称) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py”,第 14 行,在 raise ImproperlyConfigured("加载 MySQLdb 模块时出错:%s" % e) django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:dlopen(/Users/adogc45/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2 ):库未加载:libmysqlclient.16.dylib 引用自:/Users/adogc45/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so 原因:找不到图片

现在,我不明白为什么在 Python 中导入模块不会引发错误,但在 django 中使用 mysql 接口会引发错误。

顺便说一句,我的 settings.py 看起来像这样:

DATABASES = {
'default': {
    'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.

另外,图像实际上存在于 .../MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp

所以,我不知道发生了什么。

【问题讨论】:

  • 感谢 Peter 和 elithrar 指出我遗漏的两件事(请参阅下面的答案)。这些解决了我的问题。

标签: python mysql django osx-snow-leopard mysql-python


【解决方案1】:

导出 DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

或:

pip install MySQL-python
pip install --upgrade MySQL-python

在虚拟环境中帮助我

【讨论】:

    【解决方案2】:

    我有一个类似的问题,我通过在我的 .bash_profile 文件(我的 ~ 目录中运行 shell 的魔法文件)中包含这一行来解决开发程序: 导出 DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 有问题的 libmysqlclient.16.dylib 位于该目录中。

    但是,当我尝试在 Apache 中将其作为 python wsgi 模块运行时,无论我做什么,Apache 都找不到 libmysqlclient.16.dylib。我努力了 sys.path.append('/usr/local/mysql/lib') os.environ['DYLD_LIBRARY_PATH'] = '/usr/local/mysql/lib' 没有运气... 似乎 Apache 没有读取这个环境变量,python 在这个上下文中也没有(它没有读取我的 .bash_profile 文件)......帮助!!!

    【讨论】:

    • 嗨,谢谢,我也必须在我的 .bash_profile 中导出该路径!
    【解决方案3】:

    试试:

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
    

    而不仅仅是mysql,如果您运行的是 Django 1.2.5。

    【讨论】:

    • 我还建议安装pip 而不是easy_install,因为它更可靠。
    • 您好,谢谢!我将“mysql”更改为“django.db.backends.mysql”以使其正常工作。
    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 2014-03-14
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多